約 5,959,710 件
https://w.atwiki.jp/atachi/pages/55.html
主なクラス [#n83d18cd] Webのリクエスト(WebClient版) [#vc4783ac] Webのリクエスト(HttpWebRequest) [#oceb8eb7] URLのエンコード [#dc0c93ce] .NET Frameworks Compactでのエンコード [#ydcce460] 主なクラス WebClient(MSDN) シンプルなWebアクセスを行う。ファイルのアップロードなどの機能を簡単に提供する。 HttpWebRequest(MSDN) HTTPプロコトルに特化したWebRequest HttpWebResponse(MSDN) HttpUtility(MSDN) HTTPに関するユーティリティクラスとして、System.Web名前空間に属するクラスがある。この名前空間はデフォルトでは読み込まれないので、プロジェクトの参照設定から手動で組み込む必要がある。.NETをコンパクトで実装しているプロジェクトの場合はこちら Webのリクエスト(WebClient版) WWWサーバー上のファイルを読み込むにはWebClient.OpenRead()を使うとHTTPを使用したリクエストをすべて作成してアクセスするので非常に簡単に該当のデータを読み込むことができる。 WebClient myClient = new WebClient(); Stream response = myClient.OpenRead("http //www.contoso.com/index.htm"); response.Close(); WebClientを使ったリクエストは非常にシンプルなリクエストしか行うことができない。 Webのリクエスト(HttpWebRequest) GETの場合はリクエストするURIにクエリー文字列を直接記述できる。 HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http //hogehoge.com?mode=test"); WebResponse res = req.GetResponse(); Stream stream = res.GetResponseStream(); // ストリームからデータの読み込み stream.Close(); POSTの場合は、WebRequestから書き込み用のStreamを取得しそこにクエリーに含める文字列を追加する。 HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http //hogehoge.com"); req.Method = "POST"; // POSTによるアクセスモード req.ContentType = "application/x-www-form-urlencoded"; // ContentTypeの指定は必須ではないが // WWWサーバーに対して行儀のよい作法。 // 相手のWWWサーバーの設定によっては、適切でないContentTypeは // リクエストを蹴られる場合があるので。 using(StreamWriter requestWriter = new StreamWriter(req.GetRequestStream())) { // C#基本構文(リソース)を参照 requestWriter.Write("mode=test"); } WebResponse res = req.GetResponse(); Stream stream = res.GetResponseStream(); // ストリームからデータの読み込み stream.Close(); 参考 using構文について URLのエンコード URLには日本語や一部の文字を含めることができません。 HTTPのリクエストでGETを使用する場合は必ずURLのエンコードが必要です。 たとえば、URLにはスペースを含めることができないので、URLのエンコードによって「%2F」というメタデータに変換されます。 URLのエンコードはHttpUtilityクラスのユーティリティメソッドを使います。 string encoded = HttpUtility.UrlEncode(target); .NET Frameworks Compactでのエンコード .NET Framework Compact で開発している場合、System.Webを参照できません。 代わりにUriクラスを使用してエンコードすることができます。(UTF-8のみ) string escaped = Uri.EscapeUriString("ほげほげ");
https://w.atwiki.jp/knowledge_library/pages/83.html
apacheインストール apache概要 httpd.conf動作環境の設定(Global Enviroment) Mainサーバに関する主要な設定 ディレクトリアクセスに関する設定 ログに関する設定 エイリアスの設定 アクセス制御に関する設定 apacheインストール yum -y install httpd mod_ssl apache概要 Service Name httpd Protocol and port 80/TCP , 443/TCP SELinux Module apache 2.1.2 Deamon Program /usr/sbin/httpd Configuration files /etc/httpd/conf/httpd.conf, /etc/httpd/conf.d/*.conf Pid file /var/run/httpd.pid Lock file /var/lock/subsys/httpd Control script /etc/init.d/httpd Script parameters start stop restart condrestart reload status fullstatas graceful help configtest Startup 2 3 4 5/85 15 httpd.conf 動作環境の設定(Global Enviroment) ServerTokens OS #SERVERレスポンスヘッダ ServerRoot "/etc/httpd" #設定ファイルのパス PidFile run/httpd.pid #プロセスIDファイルの指定 TimeOut 60 #タイムアウト時間 rest(GET,POST,PUT,DELETE) KeepAlive Off #1回のTCPセッションで、複数のHTTPリクエストを処理させる MaxKeepAliveRequests 100 #1回のTCPセッションで受け付ける事の出来るリクエスト数 KeepAliveTimeout 15 #TCPセッションを切断せずに次のHTTPリクエストを待つ時間 IfModule prefork.c #MPM prefockの設定 StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000 /IfModule Listen 80 #待機するアドレス/ポートの設定 LoadModule #モジュールの使用に関する設定 Include conf.d/*.conf #他ファイルの読み込みに関する設定 #ExtendedStatus On #ステータス情報の使用の設定 User apache #プロセス所有者 Group apache Mainサーバに関する主要な設定 ServerAdmin root@localhost #サーバ管理者の指定 #ServerName www.example.com 80 #サーバ名の指定 UseCanonicalName Off #サーバ名の指定 Off/On/Dns DocumentRoot "/var/www/html" #ドキュメントルートの指定 ServerSignature On/Off/Email #サーバが生成するドキュメントフッターの設定 ディレクトリアクセスに関する設定 UserDir disabled #ユーザが公開するディレクトリの指定 disabled|enabled #UserDir public_html DirectoryIndex index.html index.html.var #インデックスファイルの指定 *.varファイルを利用する事でブラウザの指定する言語に併せたページを表示する事が可能です ログに関する設定 HostnameLookups Off #ホスト名解決の設定 アクセスログに記録する際、クライアントのIPアドレスから,DNSに問い合わせて得られたホスト名で記録するかを指定。 On|Off|Double #EnableMMAP off|on #メモリマッピングの設定 #EnableSendfile off|on #Sendfileの設定 エラーログに関する設定 ErrorLog logs/error_log LogLevel warn|emeg|alert|crit|error|warn|notice|info|debug アクセスログに関する設定 combined(複合型),common(基本型),referer(REFEREおよび、AGENTのみ) LogFormat "%h %l %u %t \"%r\" % s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" % s %b" common LogFormat "%{Referer}i - %U" referer LogFormat "%{User-agent}i" agent #LogFormat "%h %l %u %t \"%r\" % s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio #CustomLog logs/access_log common #CustomLog logs/referer_log referer #CustomLog logs/agent_log agent CustomLog logs/access_log combined エイリアスの設定 Alias /icons/ "/var/www/icons/" #エイリアスの指定 Directory "/var/www/icons" Options Indexes MultiViews FollowSymLinks AllowOverride None Order allow,deny Allow from all /Directory IfModule mod_dav_fs.c # Location of the WebDAV lock database. DAVLockDB /var/lib/dav/lockdb /IfModule ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" #スクリプトエイリアスの指定 Directory "/var/www/cgi-bin" AllowOverride None Options None Order allow,deny Allow from all /Directory IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8 #インデックス表示の書式設定 アイコン情報の指定 AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip AddIconByType (TXT,/icons/text.gif) text/* AddIconByType (IMG,/icons/image2.gif) image/* AddIconByType (SND,/icons/sound2.gif) audio/* AddIconByType (VID,/icons/movie.gif) video/* 挿入ファイルの指定 ReadmeName README.html HeaderName HEADER.html 無視するファイルの指定 IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t MIME言語タイプとサフィックスの対応付け AddLanguage ca .ca AddLanguage cs .cz .cs LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW ForceLanguagePriority Prefer Fallback 文字コードとサッフィクスの対応付け AddDefaultCharset UTF-8 MIMEタイプとサフィックスの対応付け #AddType application/x-tar .tgz ハンドラとサフィックスの対応付け #AddHandler cgi-script .cgi サーバ応答のフィルタの対応付け AddOutputFilter INCLUDES .shtml エラードキュメントの設定 IfModule mod_negotiation.c IfModule mod_include.c Directory "/var/www/error" AllowOverride None Options IncludesNoExec AddOutputFilter Includes html AddHandler type-map var Order allow,deny Allow from all LanguagePriority en es de fr ForceLanguagePriority Prefer Fallback /Directory # ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var # ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var # ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var /IfModule /IfModule アクセス制御に関する設定 Directory / #ディレクトリ単位のアクセス制御 Options FollowSymLinks #制御オプション AllowOverride All Deny from All /Directory Directory "/var/www/html" Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all /Directory Options None 全て無効にする All 全て有効にする ExecCGI CGIプログラムの実行を許可する FollowSymLinks シンボリックリンクがあるとき、それを辿る事を許可する Includes SSIを許可する IncludesNOEXEC SSIを許可するが、#exec,#cmd,#includeによるプログラムの実行は禁止する Indexes ディレクトリインデックスの作成を許可する MultiViews Content negotiated MultiViewsを許可する SymLinksOwnerMatch シンボリックリンクとリンク先が同じ所有車である場合のみ、それを辿る事を許可する AllowOverride None オーバライドを無効 All すべて有効 AuthConfig 認証に関するディレクティブを有効にする。対象のディレクティブは、AuthDBMUserFile,AuthDBMGroupFile,AuthGroupFile,AuthName,AuthTypeなど FileInfo ドキュメントタイプを指定するディレクティブを有効にする。 Indexes ディレクトリインデックスを制御するディレクティブを有効にする Limit アクセス制御を行うディレクティブを有効にする Options 機能を制御するディレクティブを有効にする
https://w.atwiki.jp/vocalive/pages/189.html
LIVEと行事一覧DB データベース (DataBase for Vocaloid Live Concerts and Events) メニューMENU + ←クリック目次 [←Click here for CONTENTS] ↓↓↓このページ名(Current Page Name)↓ 自動作成目次(contents) 行事紹介(Live Concert and Event Information) 【LIVE/日本/Prima Project, Hatsune Miku Live at Takarazuka Univ in Osaka Japan 2011】 Construction日本で最初の手作りボーカロイドライブ. 生バンド演奏付きでは、世界最初の手作りボーカロイドライブの可能性。 次回企画の協力者募集中です!。MMDer、演奏者、歌い手、踊り手、撮影者、動画編集者等。 ダイジェスト映像・動画配信・写真等(Summary Video, Live Streaming Photo) チケット情報・グッズ情報・BD/CD・その他 (Ticket Goods Information, etc.) 技術情報・出演ボーカロイド・スクリーン・MMD・3Dモデル・プロジェクター・ソフト・舞台等 (Technology・Vocaloid Name・Screen・MikuMikuDance・3D Model・Projector・Software) 出演者・製作者・関連ブログ等 (Musician, Staff, Related Blog and Credit) セットリスト(演奏曲目)・その他 (Set List, name of music) Summary in English and other language(英語等での紹介) 行事を行う団体や個人等 (Organizer and Group) スポンサー・協賛等 (Sponsor and Support) 関連行事 (Related Event Info.) 紹介記事・参考サイト・謝辞・文献等 (News, References, Acknowledgement and Credit) International News (国際ニュース) New Project and collaboration Blog Memo・メモ帳 EDIT Page 行事紹介(Live Concert and Event Information) ↓このページ名(Current Page Name)↓ 【LIVE/日本/Prima Project, Hatsune Miku Live at Takarazuka Univ in Osaka Japan 2011】 LIVE/日本/Prima Project, Hatsune Miku Live at Takarazuka Univ in Osaka Japan 2011 Construction Related page 日本で最初の手作りボーカロイドライブ. 生バンド演奏付きでは、世界最初の手作りボーカロイドライブの可能性。 The first handmaid live concert in Japan. The band played music. 手作りライブ:初音ミクと生バンド 2011年9月18日・19日 場所:宝塚大学 主催:Prima Project 公式サイト:http //prima-project.net/ 「初音ミクを学園祭に呼んでみた!」 今後の情報及び公式ツイッター https //twitter.com/primaproject http //com.nicovideo.jp/community/co1325846 ライブ配信動画 ttp //www.youtube.com/watch?v=6ffTd76X0Mc http //www.nicovideo.jp/watch/sm15650652 宝塚大学のライブ用自作スクリーンでのデモと説明 http //www.nicovideo.jp/watch/sm15403849 http //prima-project.net/about2.html#about_01 宝塚大学 宝翔祭2011にてライブコンサートが開かれた PrimaProject ■イベント名称: ■会場: ■日程: Twitter FaceBook ツイッター:https //twitter.com/primaproject 連絡先:p.project39@gmail.com Prima Project 公式コミュ http //com.nicovideo.jp/community/co1325846 Nico Nico Video Playlist (マイリス) https //www.nicovideo.jp/mylist/27511059 もと公式サイト:http //prima-project.net 次回企画の協力者募集中です!。MMDer、演奏者、歌い手、踊り手、撮影者、動画編集者等。 2014 7月 ダイジェスト映像・動画配信・写真等(Summary Video, Live Streaming Photo) http //pbs.twimg.com/profile_images/1463317256/image.jpg フィルターの有無による撮影画像の変化の様子 http //www.nicovideo.jp/watch/sm23607274 学祭にミクさん呼んでライブしたよー Hatsune Miku Live 'Prima Project' 9/19 2011 初音ミク PrimaProject 宝翔祭2011 http //www.youtube.com/watch?v=6ffTd76X0Mc (この動画は、お客さんが撮影して投稿されたものです。) 宝塚大学 宝翔祭2011にてライブコンサートが開かれた PrimaProject http //www.nicovideo.jp/watch/sm15650652 のHD版です。 宝塚大学ライブ用 自作スクリーン 作り方: 自作透過スクリーンにミクさん映してみた http //www.nicovideo.jp/watch/1401022806 http //www.nicovideo.jp/watch/sm15403849 初音ミクをKinectで遊んでみた! http //www.nicovideo.jp/watch/1315918163 http //prima-project.net/about2.html#about_01 初音ミクと一緒にライブしてみた http //www.nicovideo.jp/watch/1400688002 フィルターの有無による撮影画像の変化の様子 http //www.nicovideo.jp/watch/sm23607274 リハ映像 http //www.nicovideo.jp/watch/sm15650652 関連映像 (Related Videos) videoプラグインエラー 正しいURLを入力してください。 チケット情報・グッズ情報・BD/CD・その他 (Ticket Goods Information, etc.) チケット情報一覧 official goods ニコ生 (Nico NIco Video LIVE streaming) 技術情報・出演ボーカロイド・スクリーン・MMD・3Dモデル・プロジェクター・ソフト・舞台等 (Technology・Vocaloid Name・Screen・MikuMikuDance・3D Model・Projector・Software) ライブ技術一覧 技術内容が不明の部分は、空けておいて下さい。 (IF YOU DO NOT UNDERSTAND, LEAVE THE TECHNOLOGY SECTION OPEN.) Screen 投影スクリーンの種類 (Screen Type):不明 素材:ビニールシート ポリ袋使用? 投影スクリーンの形状 (Shape of Screen): スクリーンの素材(Materials for making screen): スクリーン素材の網の目等のメッシュのサイズ:Mesh number # or Mesh size of Screen: スクリーン素材の製品カタログ番号等(Product Number of materials for making screen): スクリーン素材の透過率(%)及び色等(Light Transmittance (%) of screen, Color): 投影スクリーン等への映り込み状態(Reflection): 鮮明度 Clearness, resolution of screen: 舞台の高さ(stage height): スクリーンの高さ(Screen height): スクリーンの湾曲の程度=(映りこんだ物の歪み方の程度): スクリーンの大きさ又は横の長さ (Screen Size): スクリーンの継ぎ目の数(Junction within the screen)=(つないで使用された投影ボード等の枚数-1、?) :0 number of materials used for making main screen: 使用された投影ボード等の枚数(Number of board used): 音響設備及び音響状態 (Sound): プロジェクタの種類・台数 (Projector): 使用ソフト (Software): 3D model: Producer of 3D Model:モデル製作: スクリーン及び映像の解像度(Resolution of Screen and video): 投影時の色補正(Color Adjustment to view on screen): MMDのモデルの種類(Model Type of MikuMikuDance): Computer and OS: リアルタイム レンダリングの有無(real-time rendering or not) レンダリング速度等 60 fps フレーム速度 60 fps カメラ等 (Camera): 技術説明動画・写真等 (Tech Video Photo): 会場設備のホームページ (Homepage of the Event Hall): 会場設備 東京ドームシティ公式サイト その他 (others): 衣装モジュール及びデザイン (Clothing design of the models) 同期システム (Synchronization system): 選曲: 出演者・製作者・関連ブログ等 (Musician, Staff, Related Blog and Credit) セットリスト(演奏曲目)・その他 (Set List, name of music) Set List SET LIST and Producer links of Vocaloid wiki Vocaloid concert directory http //vocaloid.wikia.com/wiki/Vocaloid_concert_directory Live Events http //vocaloid.wikia.com/wiki/Live_Events http //hatsunemikusetlists.wordpress.com/ for listings that are already in English, there will be no ‘romaji’. Summary in English and other language(英語等での紹介) http //www.niconico.com/ http //live.niconico.com/ 行事を行う団体や個人等 (Organizer and Group) スポンサー・協賛等 (Sponsor and Support) 関連行事 (Related Event Info.) 紹介記事・参考サイト・謝辞・文献等 (News, References, Acknowledgement and Credit) 情報一覧MEMO International News (国際ニュース) New Project and collaboration Blog Memo・メモ帳 http //www.nicovideo.jp/watch/sm15650652 Hatsune Miku Prima Project Kinect MMD https //www.youtube.com/watch?v=CCkFRqiPsbM お客さん撮影 初音ミク 宝翔祭2011 PrimaProject 行ってきた http //www.nicovideo.jp/watch/sm15650652 EDIT Page If do not know about editing web page of this Wiki, DO NOT EDIT. Click HERE to Edit Current Page or click following URL to edit this page. http //www18.atwiki.jp/vocalive/editx/27.html Make sure to rewrite correct page number after (/vocalive/editx/) or (/vocalive//editx/PAGE NUMBER.html) to edit current page. [ページ保存] button below the editing window=means SAVE the page after editing to finish editing. [プレビュー] button below the editing window=means PREVIEW the page during editing. input the code number shown to perform these command. To cancel editing, just use Web browser button out side the editing window to go back. or CLOSE the editing page of the Web browser's window. If you make mistake, DO NOT SAVE the page. Do NOT press [ページ保存] button. [» タグ ]box below the editing window=means make TAG of this page after editing. If you have any problem, insert "HELP" in the TAG to identify the page at later for repair. EDIT & MAKE Page #facebook_comment コメント・Comment 名前 コメント
https://w.atwiki.jp/freememo/pages/56.html
HINTERNET g_hInet; HINTERNET g_hURL; //===========================================================================// /*! @brief WinInetライブラリ初期処理 @param[in] lpszURL 対象URL @return 成否 */ //===========================================================================// BOOL InitWinInet(LPCTSTR lpszURL) { // WinInetライブラリ開始 g_hInet = InternetOpen( L"", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); if (g_hInet == NULL) { return FALSE; } // セッションオープン g_hURL = InternetOpenUrl(g_hInet, lpszURL, NULL, 0, 0, 0); if (g_hURL == NULL) { return FALSE; } return TRUE; } //===========================================================================// /*! @brief WinInetライブラリ終了処理 @return 無し */ //===========================================================================// void TerminateWinInet() { // WinInet関連ハンドル開放 if (g_hURL) { InternetCloseHandle(g_hURL); } if (g_hInet) { InternetCloseHandle(g_hInet); } } //===========================================================================// /*! @brief HTTPヘッダー情報取得 @param[in] lpszURL 対象URL @param[out] lpOutBuffer HTTPヘッダー情報バッファ @param[in/out] hMem メモリハンドル @return 成否 */ //===========================================================================// BOOL WINAPI NMAPI_GetHttpSource(LPCTSTR lpszURL, LPSTR lpOutBuffer, HGLOBAL hMem) { BOOL bRet = FALSE; // WinInetライブラリ初期処理 if (! InitWinInet(lpszURL)) { goto END; } // データ読み出し // サイトによっては、文字コードに左右される可能性がある為、マルチバイト扱いとする CHAR szBuf[128]; ZeroMemory(szBuf, sizeof(szBuf)); DWORD dwRead; int nTotal = 0; while (TRUE) { InternetReadFile(g_hURL, szBuf, (DWORD)sizeof(szBuf) - 1, dwRead); szBuf[dwRead] = \0 ; if (dwRead == 0) { break; } nTotal += dwRead; // メモリ再割り当て hMem = GlobalReAlloc(hMem, (SIZE_T)nTotal+1, GMEM_MOVEABLE); if (hMem == NULL) { goto END; } lpOutBuffer = (CHAR *)GlobalLock(hMem); if (lpOutBuffer == NULL) { goto END; } strcat_s(lpOutBuffer, nTotal+1, szBuf); } bRet = TRUE; END // WinInetライブラリ終了処理 TerminateWinInet(); return bRet; } //===========================================================================// //呼び出し側 //===========================================================================// { // メモリ割り当て HGLOBAL hMem = GlobalAlloc(GHND, sizeof(TCHAR)); TCHAR* lpszHeader = (TCHAR*)GlobalLock(hMem); if (NMAPI_GetHttpHeader(strURL, lpszHeader, hMem)) { ・・・ ・・・ ・・・ } // メモリ開放 GlobalUnlock(hMem); GlobalFree(hMem); }
https://w.atwiki.jp/ugomemohp/pages/9.html
動画(youtube) @wikiのwikiモードでは #video(動画のURL) と入力することで、動画を貼り付けることが出来ます。 詳しくはこちらをご覧ください。 =>http //atwiki.jp/guide/17_209_ja.html また動画のURLはYoutubeのURLをご利用ください。 =>http //www.youtube.com/ たとえば、#video(http //youtube.com/watch?v=kTV1CcS53JQ)と入力すると以下のように表示されます。
https://w.atwiki.jp/feedback1970/pages/57.html
memo source 1 /* Licensed to the Apache Software Foundation (ASF) under one or more 2 * contributor license agreements. See the NOTICE file distributed with 3 * this work for additional information regarding copyright ownership. 4 * The ASF licenses this file to You under the Apache License, Version 2.0 5 * (the "License"); you may not use this file except in compliance with 6 * the License. You may obtain a copy of the License at 7 * 8 * http //www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #ifndef APACHE_HTTP_CONFIG_H 18 #define APACHE_HTTP_CONFIG_H 19 20 #include "apr_hooks.h" 21 #include "util_cfgtree.h" 22 23 #ifdef __cplusplus 24 extern "C" { 25 #endif 26 27 /** 28 * @file http_config.h 29 * @brief Apache Configuration 30 */ 31 32 /* 33 * The central data structures around here... 34 */ 35 36 /* Command dispatch structures... */ 37 38 /** 39 * How the directives arguments should be parsed. 40 * @remark Note that for all of these except RAW_ARGS, the config routine is 41 * passed a freshly allocated string which can be modified or stored 42 * or whatever... 43 */ 44 enum cmd_how { 45 RAW_ARGS, /** cmd_func parses command line itself */ 46 TAKE1, /** one argument only */ 47 TAKE2, /** two arguments only */ 48 ITERATE, /** one argument, occuring multiple times 49 * (e.g., IndexIgnore) 50 */ 51 ITERATE2, /** two arguments, 2nd occurs multiple times 52 * (e.g., AddIcon) 53 */ 54 FLAG, /** One of On or Off */ 55 NO_ARGS, /** No args at all, e.g. /Directory */ 56 TAKE12, /** one or two arguments */ 57 TAKE3, /** three arguments only */ 58 TAKE23, /** two or three arguments */ 59 TAKE123, /** one, two or three arguments */ 60 TAKE13 /** one or three arguments */ 61 }; 62 /** 63 * This structure is passed to a command which is being invoked, 64 * to carry a large variety of miscellaneous data which is all of 65 * use to *somebody*... 66 */ 67 typedef struct cmd_parms_struct cmd_parms; 68 69 #if defined(AP_HAVE_DESIGNATED_INITIALIZER) || defined(DOXYGEN) 70 71 /** 72 * All the types of functions that can be used in directives 73 * @internal 74 */ 75 typedef union { 76 /** function to call for a no-args */ 77 const char *(*no_args) (cmd_parms *parms, void *mconfig); 78 /** function to call for a raw-args */ 79 const char *(*raw_args) (cmd_parms *parms, void *mconfig, 80 const char *args); 81 /** function to call for a take1 */ 82 const char *(*take1) (cmd_parms *parms, void *mconfig, const char *w); 83 /** function to call for a take2 */ 84 const char *(*take2) (cmd_parms *parms, void *mconfig, const char *w, 85 const char *w2); 86 /** function to call for a take3 */ 87 const char *(*take3) (cmd_parms *parms, void *mconfig, const char *w, 88 const char *w2, const char *w3); 89 /** function to call for a flag */ 90 const char *(*flag) (cmd_parms *parms, void *mconfig, int on); 91 } cmd_func; 92 93 /** This configuration directive does not take any arguments */ 94 # define AP_NO_ARGS func.no_args 95 /** This configuration directive will handle it s own parsing of arguments*/ 96 # define AP_RAW_ARGS func.raw_args 97 /** This configuration directive takes 1 argument*/ 98 # define AP_TAKE1 func.take1 99 /** This configuration directive takes 2 arguments */ 100 # define AP_TAKE2 func.take2 101 /** This configuration directive takes 3 arguments */ 102 # define AP_TAKE3 func.take3 103 /** This configuration directive takes a flag (on/off) as a argument*/ 104 # define AP_FLAG func.flag 105 106 /** method of declaring a directive with no arguments */ 107 # define AP_INIT_NO_ARGS(directive, func, mconfig, where, help) \ 108 { directive, { .no_args=func }, mconfig, where, RAW_ARGS, help } 109 /** method of declaring a directive with raw argument parsing */ 110 # define AP_INIT_RAW_ARGS(directive, func, mconfig, where, help) \ 111 { directive, { .raw_args=func }, mconfig, where, RAW_ARGS, help } 112 /** method of declaring a directive which takes 1 argument */ 113 # define AP_INIT_TAKE1(directive, func, mconfig, where, help) \ 114 { directive, { .take1=func }, mconfig, where, TAKE1, help } 115 /** method of declaring a directive which takes multiple arguments */ 116 # define AP_INIT_ITERATE(directive, func, mconfig, where, help) \ 117 { directive, { .take1=func }, mconfig, where, ITERATE, help } 118 /** method of declaring a directive which takes 2 arguments */ 119 # define AP_INIT_TAKE2(directive, func, mconfig, where, help) \ 120 { directive, { .take2=func }, mconfig, where, TAKE2, help } 121 /** method of declaring a directive which takes 1 or 2 arguments */ 122 # define AP_INIT_TAKE12(directive, func, mconfig, where, help) \ 123 { directive, { .take2=func }, mconfig, where, TAKE12, help } 124 /** method of declaring a directive which takes multiple 2 arguments */ 125 # define AP_INIT_ITERATE2(directive, func, mconfig, where, help) \ 126 { directive, { .take2=func }, mconfig, where, ITERATE2, help } 127 /** method of declaring a directive which takes 1 or 3 arguments */ 128 # define AP_INIT_TAKE13(directive, func, mconfig, where, help) \ 129 { directive, { .take3=func }, mconfig, where, TAKE13, help } 130 /** method of declaring a directive which takes 2 or 3 arguments */ 131 # define AP_INIT_TAKE23(directive, func, mconfig, where, help) \ 132 { directive, { .take3=func }, mconfig, where, TAKE23, help } 133 /** method of declaring a directive which takes 1 to 3 arguments */ 134 # define AP_INIT_TAKE123(directive, func, mconfig, where, help) \ 135 { directive, { .take3=func }, mconfig, where, TAKE123, help } 136 /** method of declaring a directive which takes 3 arguments */ 137 # define AP_INIT_TAKE3(directive, func, mconfig, where, help) \ 138 { directive, { .take3=func }, mconfig, where, TAKE3, help } 139 /** method of declaring a directive which takes a flag (on/off) as a argument*/ 140 # define AP_INIT_FLAG(directive, func, mconfig, where, help) \ 141 { directive, { .flag=func }, mconfig, where, FLAG, help } 142 143 #else /* AP_HAVE_DESIGNATED_INITIALIZER */ 144 145 typedef const char *(*cmd_func) (); 146 147 # define AP_NO_ARGS func 148 # define AP_RAW_ARGS func 149 # define AP_TAKE1 func 150 # define AP_TAKE2 func 151 # define AP_TAKE3 func 152 # define AP_FLAG func 153 154 # define AP_INIT_NO_ARGS(directive, func, mconfig, where, help) \ 155 { directive, func, mconfig, where, RAW_ARGS, help } 156 # define AP_INIT_RAW_ARGS(directive, func, mconfig, where, help) \ 157 { directive, func, mconfig, where, RAW_ARGS, help } 158 # define AP_INIT_TAKE1(directive, func, mconfig, where, help) \ 159 { directive, func, mconfig, where, TAKE1, help } 160 # define AP_INIT_ITERATE(directive, func, mconfig, where, help) \ 161 { directive, func, mconfig, where, ITERATE, help } 162 # define AP_INIT_TAKE2(directive, func, mconfig, where, help) \ 163 { directive, func, mconfig, where, TAKE2, help } 164 # define AP_INIT_TAKE12(directive, func, mconfig, where, help) \ 165 { directive, func, mconfig, where, TAKE12, help } 166 # define AP_INIT_ITERATE2(directive, func, mconfig, where, help) \ 167 { directive, func, mconfig, where, ITERATE2, help } 168 # define AP_INIT_TAKE13(directive, func, mconfig, where, help) \ 169 { directive, func, mconfig, where, TAKE13, help } 170 # define AP_INIT_TAKE23(directive, func, mconfig, where, help) \ 171 { directive, func, mconfig, where, TAKE23, help } 172 # define AP_INIT_TAKE123(directive, func, mconfig, where, help) \ 173 { directive, func, mconfig, where, TAKE123, help } 174 # define AP_INIT_TAKE3(directive, func, mconfig, where, help) \ 175 { directive, func, mconfig, where, TAKE3, help } 176 # define AP_INIT_FLAG(directive, func, mconfig, where, help) \ 177 { directive, func, mconfig, where, FLAG, help } 178 179 #endif /* AP_HAVE_DESIGNATED_INITIALIZER */ 180 181 /** 182 * The command record structure. Each modules can define a table of these 183 * to define the directives it will implement. 184 */ 185 typedef struct command_struct command_rec; 186 struct command_struct { 187 /** Name of this command */ 188 const char *name; 189 /** The function to be called when this directive is parsed */ 190 cmd_func func; 191 /** Extra data, for functions which implement multiple commands... */ 192 void *cmd_data; 193 /** What overrides need to be allowed to enable this command. */ 194 int req_override; 195 /** What the command expects as arguments 196 * @defvar cmd_how args_how*/ 197 enum cmd_how args_how; 198 199 /** usage message, in case of syntax errors */ 200 const char *errmsg; 201 }; 202 203 /** 204 * @defgroup ConfigDirectives Allowed locations for configuration directives. 205 * 206 * The allowed locations for a configuration directive are the union of 207 * those indicated by each set bit in the req_override mask. 208 * 209 * @{ 210 */ 211 #define OR_NONE 0 /** *.conf is not available anywhere in this override */ 212 #define OR_LIMIT 1 /** *.conf inside Directory or Location 213 and .htaccess when AllowOverride Limit */ 214 #define OR_OPTIONS 2 /** *.conf anywhere 215 and .htaccess when AllowOverride Options */ 216 #define OR_FILEINFO 4 /** *.conf anywhere 217 and .htaccess when AllowOverride FileInfo */ 218 #define OR_AUTHCFG 8 /** *.conf inside Directory or Location 219 and .htaccess when AllowOverride AuthConfig */ 220 #define OR_INDEXES 16 /** *.conf anywhere 221 and .htaccess when AllowOverride Indexes */ 222 #define OR_UNSET 32 /** unset a directive (in Allow) */ 223 #define ACCESS_CONF 64 /** *.conf inside Directory or Location */ 224 #define RSRC_CONF 128 /** *.conf outside Directory or Location */ 225 #define EXEC_ON_READ 256 /** force directive to execute a command 226 which would modify the configuration (like including another 227 file, or IFModule */ 228 /** this directive can be placed anywhere */ 229 #define OR_ALL (OR_LIMIT|OR_OPTIONS|OR_FILEINFO|OR_AUTHCFG|OR_INDEXES) 230 231 /** @} */ 232 233 /** 234 * This can be returned by a function if they don t wish to handle 235 * a command. Make it something not likely someone will actually use 236 * as an error code. 237 */ 238 #define DECLINE_CMD "\a\b" 239 240 /** Common structure for reading of config files / passwd files etc. */ 241 typedef struct ap_configfile_t ap_configfile_t; 242 struct ap_configfile_t { 243 int (*getch) (void *param); /** a getc()-like function */ 244 void *(*getstr) (void *buf, size_t bufsiz, void *param); 245 /** a fgets()-like function */ 246 int (*close) (void *param); /** a close handler function */ 247 void *param; /** the argument passed to getch/getstr/close */ 248 const char *name; /** the filename / description */ 249 unsigned line_number; /** current line number, starting at 1 */ 250 }; 251 252 /** 253 * This structure is passed to a command which is being invoked, 254 * to carry a large variety of miscellaneous data which is all of 255 * use to *somebody*... 256 */ 257 struct cmd_parms_struct { 258 /** Argument to command from cmd_table */ 259 void *info; 260 /** Which allow-override bits are set */ 261 int override; 262 /** Which methods are Limit ed */ 263 apr_int64_t limited; 264 /** methods which are limited */ 265 apr_array_header_t *limited_xmethods; 266 /** methods which are xlimited */ 267 ap_method_list_t *xlimited; 268 269 /** Config file structure. */ 270 ap_configfile_t *config_file; 271 /** the directive specifying this command */ 272 ap_directive_t *directive; 273 274 /** Pool to allocate new storage in */ 275 apr_pool_t *pool; 276 /** Pool for scratch memory; persists during configuration, but 277 * wiped before the first request is served... */ 278 apr_pool_t *temp_pool; 279 /** Server_rec being configured for */ 280 server_rec *server; 281 /** If configuring for a directory, pathname of that directory. 282 * NOPE! That s what it meant previous to the existance of Files , 283 * Location and regex matching. Now the only usefulness that can be 284 * derived from this field is whether a command is being called in a 285 * server context (path == NULL) or being called in a dir context 286 * (path != NULL). */ 287 char *path; 288 /** configuration command */ 289 const command_rec *cmd; 290 291 /** per_dir_config vector passed to handle_command */ 292 struct ap_conf_vector_t *context; 293 /** directive with syntax error */ 294 const ap_directive_t *err_directive; 295 }; 296 297 /** 298 * Module structures. Just about everything is dispatched through 299 * these, directly or indirectly (through the command and handler 300 * tables). 301 */ 302 typedef struct module_struct module; 303 struct module_struct { 304 /** API version, *not* module version; check that module is 305 * compatible with this version of the server. 306 */ 307 int version; 308 /** API minor version. Provides API feature milestones. Not checked 309 * during module init */ 310 int minor_version; 311 /** Index to this modules structures in config vectors. */ 312 int module_index; 313 314 /** The name of the module s C file */ 315 const char *name; 316 /** The handle for the DSO. Internal use only */ 317 void *dynamic_load_handle; 318 319 /** A pointer to the next module in the list 320 * @defvar module_struct *next */ 321 struct module_struct *next; 322 323 /** Magic Cookie to identify a module structure; It s mainly 324 * important for the DSO facility (see also mod_so). */ 325 unsigned long magic; 326 327 /** Function to allow MPMs to re-write command line arguments. This 328 * hook is only available to MPMs. 329 * @param The process that the server is running in. 330 */ 331 void (*rewrite_args) (process_rec *process); 332 /** Function to allow all modules to create per directory configuration 333 * structures. 334 * @param p The pool to use for all allocations. 335 * @param dir The directory currently being processed. 336 * @return The per-directory structure created 337 */ 338 void *(*create_dir_config) (apr_pool_t *p, char *dir); 339 /** Function to allow all modules to merge the per directory configuration 340 * structures for two directories. 341 * @param p The pool to use for all allocations. 342 * @param base_conf The directory structure created for the parent directory. 343 * @param new_conf The directory structure currently being processed. 344 * @return The new per-directory structure created 345 */ 346 void *(*merge_dir_config) (apr_pool_t *p, void *base_conf, void *new_conf); 347 /** Function to allow all modules to create per server configuration 348 * structures. 349 * @param p The pool to use for all allocations. 350 * @param s The server currently being processed. 351 * @return The per-server structure created 352 */ 353 void *(*create_server_config) (apr_pool_t *p, server_rec *s); 354 /** Function to allow all modules to merge the per server configuration 355 * structures for two servers. 356 * @param p The pool to use for all allocations. 357 * @param base_conf The directory structure created for the parent directory. 358 * @param new_conf The directory structure currently being processed. 359 * @return The new per-directory structure created 360 */ 361 void *(*merge_server_config) (apr_pool_t *p, void *base_conf, 362 void *new_conf); 363 364 /** A command_rec table that describes all of the directives this module 365 * defines. */ 366 const command_rec *cmds; 367 368 /** A hook to allow modules to hook other points in the request processing. 369 * In this function, modules should call the ap_hook_*() functions to 370 * register an interest in a specific step in processing the current 371 * request. 372 * @param p the pool to use for all allocations 373 */ 374 void (*register_hooks) (apr_pool_t *p); 375 }; 376 377 /** 378 * @defgroup ModuleInit Module structure initializers 379 * 380 * Initializer for the first few module slots, which are only 381 * really set up once we start running. Note that the first two slots 382 * provide a version check; this should allow us to deal with changes to 383 * the API. The major number should reflect changes to the API handler table 384 * itself or removal of functionality. The minor number should reflect 385 * additions of functionality to the existing API. (the server can detect 386 * an old-format module, and either handle it back-compatibly, or at least 387 * signal an error). See src/include/ap_mmn.h for MMN version history. 388 * @{ 389 */ 390 391 /** The one used in Apache 1.3, which will deliberately cause an error */ 392 #define STANDARD_MODULE_STUFF this_module_needs_to_be_ported_to_apache_2_0 393 394 /** Use this in all standard modules */ 395 #define STANDARD20_MODULE_STUFF MODULE_MAGIC_NUMBER_MAJOR, \ 396 MODULE_MAGIC_NUMBER_MINOR, \ 397 -1, \ 398 __FILE__, \ 399 NULL, \ 400 NULL, \ 401 MODULE_MAGIC_COOKIE, \ 402 NULL /* rewrite args spot */ 403 404 /** Use this only in MPMs */ 405 #define MPM20_MODULE_STUFF MODULE_MAGIC_NUMBER_MAJOR, \ 406 MODULE_MAGIC_NUMBER_MINOR, \ 407 -1, \ 408 __FILE__, \ 409 NULL, \ 410 NULL, \ 411 MODULE_MAGIC_COOKIE 412 413 /** @} */ 414 415 /* CONFIGURATION VECTOR FUNCTIONS */ 416 417 /** configuration vector structure */ 418 typedef struct ap_conf_vector_t ap_conf_vector_t; 419 420 /** 421 * Generic accessors for other modules to get at their own module-specific 422 * data 423 * @param conf_vector The vector in which the modules configuration is stored. 424 * usually r- per_dir_config or s- module_config 425 * @param m The module to get the data for. 426 * @return The module-specific data 427 */ 428 AP_DECLARE(void *) ap_get_module_config(const ap_conf_vector_t *cv, 429 const module *m); 430 431 /** 432 * Generic accessors for other modules to set at their own module-specific 433 * data 434 * @param conf_vector The vector in which the modules configuration is stored. 435 * usually r- per_dir_config or s- module_config 436 * @param m The module to set the data for. 437 * @param val The module-specific data to set 438 */ 439 AP_DECLARE(void) ap_set_module_config(ap_conf_vector_t *cv, const module *m, 440 void *val); 441 442 #if !defined(AP_DEBUG) 443 444 #define ap_get_module_config(v,m) \ 445 (((void **)(v))[(m)- module_index]) 446 #define ap_set_module_config(v,m,val) \ 447 ((((void **)(v))[(m)- module_index]) = (val)) 448 449 #endif /* AP_DEBUG */ 450 451 452 /** 453 * Generic command handling function for strings 454 * @param cmd The command parameters for this directive 455 * @param struct_ptr pointer into a given type 456 * @param arg The argument to the directive 457 * @return An error string or NULL on success 458 */ 459 AP_DECLARE_NONSTD(const char *) ap_set_string_slot(cmd_parms *cmd, 460 void *struct_ptr, 461 const char *arg); 462 463 /** 464 * Generic command handling function for integers 465 * @param cmd The command parameters for this directive 466 * @param struct_ptr pointer into a given type 467 * @param arg The argument to the directive 468 * @return An error string or NULL on success 469 */ 470 AP_DECLARE_NONSTD(const char *) ap_set_int_slot(cmd_parms *cmd, 471 void *struct_ptr, 472 const char *arg); 473 474 /** 475 * Return true if the specified method is limited by being listed in 476 * a Limit container, or by *not* being listed in a LimiteExcept 477 * container. 478 * 479 * @param method Pointer to a string specifying the method to check. 480 * @param cmd Pointer to the cmd_parms structure passed to the 481 * directive handler. 482 * @return 0 if the method is not limited in the current scope 483 */ 484 AP_DECLARE(int) ap_method_is_limited(cmd_parms *cmd, const char *method); 485 486 /** 487 * Generic command handling function for strings, always sets the value 488 * to a lowercase string 489 * @param cmd The command parameters for this directive 490 * @param struct_ptr pointer into a given type 491 * @param arg The argument to the directive 492 * @return An error string or NULL on success 493 */ 494 AP_DECLARE_NONSTD(const char *) ap_set_string_slot_lower(cmd_parms *cmd, 495 void *struct_ptr, 496 const char *arg); 497 /** 498 * Generic command handling function for flags 499 * @param cmd The command parameters for this directive 500 * @param struct_ptr pointer into a given type 501 * @param arg The argument to the directive (either 1 or 0) 502 * @return An error string or NULL on success 503 */ 504 AP_DECLARE_NONSTD(const char *) ap_set_flag_slot(cmd_parms *cmd, 505 void *struct_ptr, 506 int arg); 507 /** 508 * Generic command handling function for files 509 * @param cmd The command parameters for this directive 510 * @param struct_ptr pointer into a given type 511 * @param arg The argument to the directive 512 * @return An error string or NULL on success 513 */ 514 AP_DECLARE_NONSTD(const char *) ap_set_file_slot(cmd_parms *cmd, 515 void *struct_ptr, 516 const char *arg); 517 /** 518 * Generic command handling function to respond with cmd- help as an error 519 * @param cmd The command parameters for this directive 520 * @param struct_ptr pointer into a given type 521 * @param arg The argument to the directive 522 * @return The cmd- help value as the error string 523 * @tip This allows simple declarations such as; 524 * pre 525 * AP_INIT_RAW_ARGS("Foo", ap_set_deprecated, NULL, OR_ALL, 526 * "The Foo directive is no longer supported, use Bar"), 527 * /pre 528 */ 529 AP_DECLARE_NONSTD(const char *) ap_set_deprecated(cmd_parms *cmd, 530 void *struct_ptr, 531 const char *arg); 532 /** 533 * For modules which need to read config files, open logs, etc. this returns 534 * the canonical form of fname made absolute to ap_server_root. 535 * @param p pool to allocate data from 536 * @param fname The file name 537 */ 538 AP_DECLARE(char *) ap_server_root_relative(apr_pool_t *p, const char *fname); 539 540 /* Finally, the hook for dynamically loading modules in... */ 541 542 /** 543 * Add a module to the server 544 * @param m The module structure of the module to add 545 * @param p The pool of the same lifetime as the module 546 */ 547 AP_DECLARE(void) ap_add_module(module *m, apr_pool_t *p); 548 549 /** 550 * Remove a module from the server. There are some caveats 551 * when the module is removed, its slot is lost so all the current 552 * per-dir and per-server configurations are invalid. So we should 553 * only ever call this function when you are invalidating almost 554 * all our current data. I.e. when doing a restart. 555 * @param m the module structure of the module to remove 556 */ 557 AP_DECLARE(void) ap_remove_module(module *m); 558 /** 559 * Add a module to the chained modules list and the list of loaded modules 560 * @param m The module structure of the module to add 561 * @param p The pool with the same lifetime as the module 562 */ 563 AP_DECLARE(void) ap_add_loaded_module(module *mod, apr_pool_t *p); 564 /** 565 * Remove a module fromthe chained modules list and the list of loaded modules 566 * @param m the module structure of the module to remove 567 */ 568 AP_DECLARE(void) ap_remove_loaded_module(module *mod); 569 /** 570 * Add a module to the list of loaded module based on the name of the 571 * module 572 * @param name The name of the module 573 * @param p The pool valid for the lifetime of the module 574 * @return 1 on success, 0 on failure 575 */ 576 AP_DECLARE(int) ap_add_named_module(const char *name, apr_pool_t *p); 577 /** 578 * Find the name of the specified module 579 * @param m The module to get the name for 580 * @return the name of the module 581 */ 582 AP_DECLARE(const char *) ap_find_module_name(module *m); 583 /** 584 * Find a module based on the name of the module 585 * @param name the name of the module 586 * @return the module structure if found, NULL otherwise 587 */ 588 AP_DECLARE(module *) ap_find_linked_module(const char *name); 589 590 /** 591 * Open a ap_configfile_t as apr_file_t 592 * @param ret_cfg open ap_configfile_t struct pointer 593 * @param p The pool to allocate the structure from 594 * @param name the name of the file to open 595 */ 596 AP_DECLARE(apr_status_t) ap_pcfg_openfile(ap_configfile_t **ret_cfg, 597 apr_pool_t *p, const char *name); 598 599 /** 600 * Allocate a ap_configfile_t handle with user defined functions and params 601 * @param p The pool to allocate from 602 * @param descr The name of the file 603 * @param param The argument passed to getch/getstr/close 604 * @param getc_func The getch function 605 * @param gets_func The getstr function 606 * @param close_func The close function 607 */ 608 AP_DECLARE(ap_configfile_t *) ap_pcfg_open_custom(apr_pool_t *p, 609 const char *descr, 610 void *param, 611 int(*getc_func)(void*), 612 void *(*gets_func) (void *buf, size_t bufsiz, void *param), 613 int(*close_func)(void *param)); 614 615 /** 616 * Read one line from open ap_configfile_t, strip LF, increase line number 617 * @param buf place to store the line read 618 * @param bufsize size of the buffer 619 * @param cfp File to read from 620 * @return 1 on success, 0 on failure 621 */ 622 AP_DECLARE(int) ap_cfg_getline(char *buf, size_t bufsize, ap_configfile_t *cfp); 623 624 /** 625 * Read one char from open configfile_t, increase line number upon LF 626 * @param cfp The file to read from 627 * @return the character read 628 */ 629 AP_DECLARE(int) ap_cfg_getc(ap_configfile_t *cfp); 630 631 /** 632 * Detach from open ap_configfile_t, calling the close handler 633 * @param cfp The file to close 634 * @return 1 on sucess, 0 on failure 635 */ 636 AP_DECLARE(int) ap_cfg_closefile(ap_configfile_t *cfp); 637 638 /** 639 * Read all data between the current foo and the matching /foo . All 640 * of this data is forgotten immediately. 641 * @param cmd The cmd_parms to pass to the directives inside the container 642 * @param directive The directive name to read until 643 * @return Error string on failure, NULL on success 644 */ 645 AP_DECLARE(const char *) ap_soak_end_container(cmd_parms *cmd, char *directive); 646 647 /** 648 * Read all data between the current foo and the matching /foo and build 649 * a config tree from it 650 * @param p pool to allocate from 651 * @param temp_pool Temporary pool to allocate from 652 * @param parms The cmd_parms to pass to all directives read 653 * @param current The current node in the tree 654 * @param curr_parent The current parent node 655 * @param orig_directive The directive to read until hit. 656 * @return Error string on failure, NULL on success 657 */ 658 AP_DECLARE(const char *) ap_build_cont_config(apr_pool_t *p, 659 apr_pool_t *temp_pool, 660 cmd_parms *parms, 661 ap_directive_t **current, 662 ap_directive_t **curr_parent, 663 char *orig_directive); 664 665 /** 666 * Build a config tree from a config file 667 * @param parms The cmd_parms to pass to all of the directives in the file 668 * @param conf_pool The pconf pool 669 * @param temp_pool The temporary pool 670 * @param conftree Place to store the root node of the config tree 671 * @return Error string on erro, NULL otherwise 672 */ 673 AP_DECLARE(const char *) ap_build_config(cmd_parms *parms, 674 apr_pool_t *conf_pool, 675 apr_pool_t *temp_pool, 676 ap_directive_t **conftree); 677 678 /** 679 * Walk a config tree and setup the server s internal structures 680 * @param conftree The config tree to walk 681 * @param parms The cmd_parms to pass to all functions 682 * @param section_vector The per-section config vector. 683 * @return Error string on error, NULL otherwise 684 */ 685 AP_DECLARE(const char *) ap_walk_config(ap_directive_t *conftree, 686 cmd_parms *parms, 687 ap_conf_vector_t *section_vector); 688 689 /** 690 * @defgroup ap_check_cmd_context ap_check_cmd_context 691 * @{ 692 */ 693 /** 694 * Check the context a command is used in. 695 * @param cmd The command to check 696 * @param forbidden Where the command is forbidden. 697 * @return Error string on error, NULL on success 698 */ 699 AP_DECLARE(const char *) ap_check_cmd_context(cmd_parms *cmd, 700 unsigned forbidden); 701 702 #define NOT_IN_VIRTUALHOST 0x01 /** Forbidden in Virtualhost */ 703 #define NOT_IN_LIMIT 0x02 /** Forbidden in Limit */ 704 #define NOT_IN_DIRECTORY 0x04 /** Forbidden in Directory */ 705 #define NOT_IN_LOCATION 0x08 /** Forbidden in Location */ 706 #define NOT_IN_FILES 0x10 /** Forbidden in Files */ 707 /** Forbidden in Directory / Location / Files */ 708 #define NOT_IN_DIR_LOC_FILE (NOT_IN_DIRECTORY|NOT_IN_LOCATION|NOT_IN_FILES) 709 /** Forbidden in VirtualHost / Limit / Directory / Location / Files */ 710 #define GLOBAL_ONLY (NOT_IN_VIRTUALHOST|NOT_IN_LIMIT|NOT_IN_DIR_LOC_FILE) 711 712 /** @} */ 713 714 #ifdef CORE_PRIVATE 715 716 /** 717 * The topmost module in the list 718 * @defvar module *ap_top_module 719 */ 720 AP_DECLARE_DATA extern module *ap_top_module; 721 722 /** 723 * Array of all statically linked modules 724 * @defvar module *ap_prelinked_modules[] 725 */ 726 AP_DECLARE_DATA extern module *ap_prelinked_modules[]; 727 /** 728 * Array of all preloaded modules 729 * @defvar module *ap_preloaded_modules[] 730 */ 731 AP_DECLARE_DATA extern module *ap_preloaded_modules[]; 732 /** 733 * Array of all loaded modules 734 * @defvar module **ap_loaded_modules 735 */ 736 AP_DECLARE_DATA extern module **ap_loaded_modules; 737 738 /* For mod_so.c... */ 739 /** Run a single module s two create_config hooks 740 * @param p the pool to allocate from 741 * @param s The server to configure for. 742 * @param m The module to configure 743 */ 744 AP_DECLARE(void) ap_single_module_configure(apr_pool_t *p, server_rec *s, 745 module *m); 746 747 /* For http_main.c... */ 748 /** 749 * Add all of the prelinked modules into the loaded module list 750 * @param process The process that is currently running the server 751 */ 752 AP_DECLARE(void) ap_setup_prelinked_modules(process_rec *process); 753 754 /** 755 * Show the preloaded configuration directives, the help string explaining 756 * the directive arguments, in what module they are handled, and in 757 * what parts of the configuration they are allowed. Used for httpd -h. 758 */ 759 AP_DECLARE(void) ap_show_directives(void); 760 761 /** 762 * Show the preloaded module names. Used for httpd -l. 763 */ 764 AP_DECLARE(void) ap_show_modules(void); 765 766 /** 767 * Show the MPM name. Used in reporting modules such as mod_info to 768 * provide extra information to the user 769 */ 770 AP_DECLARE(const char *) ap_show_mpm(void); 771 772 /** 773 * Read all config files and setup the server 774 * @param process The process running the server 775 * @param temp_pool A pool to allocate temporary data from. 776 * @param config_name The name of the config file 777 * @param conftree Place to store the root of the config tree 778 * @return The setup server_rec list. 779 */ 780 AP_DECLARE(server_rec *) ap_read_config(process_rec *process, 781 apr_pool_t *temp_pool, 782 const char *config_name, 783 ap_directive_t **conftree); 784 785 /** 786 * Run all rewrite args hooks for loaded modules 787 * @param process The process currently running the server 788 */ 789 AP_DECLARE(void) ap_run_rewrite_args(process_rec *process); 790 791 /** 792 * Run the register hooks function for a specified module 793 * @param m The module to run the register hooks function fo 794 * @param p The pool valid for the lifetime of the module 795 */ 796 AP_DECLARE(void) ap_register_hooks(module *m, apr_pool_t *p); 797 798 /** 799 * Setup all virtual hosts 800 * @param p The pool to allocate from 801 * @param main_server The head of the server_rec list 802 */ 803 AP_DECLARE(void) ap_fixup_virtual_hosts(apr_pool_t *p, 804 server_rec *main_server); 805 806 /* For http_request.c... */ 807 808 /** 809 * Setup the config vector for a request_rec 810 * @param p The pool to allocate the config vector from 811 * @return The config vector 812 */ 813 AP_CORE_DECLARE(ap_conf_vector_t*) ap_create_request_config(apr_pool_t *p); 814 815 /** 816 * Setup the config vector for per dir module configs 817 * @param p The pool to allocate the config vector from 818 * @return The config vector 819 */ 820 AP_CORE_DECLARE(ap_conf_vector_t *) ap_create_per_dir_config(apr_pool_t *p); 821 822 /** 823 * Run all of the modules merge per dir config functions 824 * @param p The pool to pass to the merge functions 825 * @param base The base directory config structure 826 * @param new_conf The new directory config structure 827 */ 828 AP_CORE_DECLARE(ap_conf_vector_t*) ap_merge_per_dir_configs(apr_pool_t *p, 829 ap_conf_vector_t *base, 830 ap_conf_vector_t *new_conf); 831 832 /* For http_connection.c... */ 833 /** 834 * Setup the config vector for a connection_rec 835 * @param p The pool to allocate the config vector from 836 * @return The config vector 837 */ 838 AP_CORE_DECLARE(ap_conf_vector_t*) ap_create_conn_config(apr_pool_t *p); 839 840 /* For http_core.c... ( Directory command and virtual hosts) */ 841 842 /** 843 * parse an htaccess file 844 * @param resulting htaccess_result 845 * @param r The request currently being served 846 * @param override Which overrides are active 847 * @param path The path to the htaccess file 848 * @param access_name The list of possible names for .htaccess files 849 * int The status of the current request 850 */ 851 AP_CORE_DECLARE(int) ap_parse_htaccess(ap_conf_vector_t **result, 852 request_rec *r, int override, 853 const char *path, 854 const char *access_name); 855 856 /** 857 * Setup a virtual host 858 * @param p The pool to allocate all memory from 859 * @param hostname The hostname of the virtual hsot 860 * @param main_server The main server for this Apache configuration 861 * @param ps Place to store the new server_rec 862 * return Error string on error, NULL on success 863 */ 864 AP_CORE_DECLARE(const char *) ap_init_virtual_host(apr_pool_t *p, 865 const char *hostname, 866 server_rec *main_server, 867 server_rec **); 868 869 /** 870 * Process the config file for Apache 871 * @param s The server rec to use for the command parms 872 * @param fname The name of the config file 873 * @param conftree The root node of the created config tree 874 * @param p Pool for general allocation 875 * @param ptem Pool for temporary allocation 876 */ 877 AP_DECLARE(void) ap_process_resource_config(server_rec *s, const char *fname, 878 ap_directive_t **conftree, 879 apr_pool_t *p, apr_pool_t *ptemp); 880 881 /** 882 * Process all directives in the config tree 883 * @param s The server rec to use in the command parms 884 * @param conftree The config tree to process 885 * @param p The pool for general allocation 886 * @param ptemp The pool for temporary allocations 887 */ 888 AP_DECLARE(void) ap_process_config_tree(server_rec *s, ap_directive_t *conftree, 889 apr_pool_t *p, apr_pool_t *ptemp); 890 891 /* Module-method dispatchers, also for http_request.c */ 892 /** 893 * Run the handler phase of each module until a module accepts the 894 * responsibility of serving the request 895 * @param r The current request 896 * @return The status of the current request 897 */ 898 AP_CORE_DECLARE(int) ap_invoke_handler(request_rec *r); 899 900 /* for mod_perl */ 901 902 /** 903 * Find a given directive in a command_rec table 904 * @param name The directive to search for 905 * @param cmds The table to search 906 * @return The directive definition of the specified directive 907 */ 908 AP_CORE_DECLARE(const command_rec *) ap_find_command(const char *name, 909 const command_rec *cmds); 910 911 /** 912 * Find a given directive in a list module 913 * @param cmd_name The directive to search for 914 * @param mod The module list to search 915 * @return The directive definition of the specified directive 916 */ 917 AP_CORE_DECLARE(const command_rec *) ap_find_command_in_modules(const char *cmd_name, 918 module **mod); 919 920 /** 921 * Ask a module to create per-server and per-section (dir/loc/file) configs 922 * (if it hasn t happened already). The results are stored in the server s 923 * config, and the specified per-section config vector. 924 * @param server The server to operate upon. 925 * @param section_vector The per-section config vector. 926 * @param section Which section to create a config for. 927 * @param mod The module which is defining the config data. 928 * @param pconf A pool for all configuration allocations. 929 * @return The (new) per-section config data. 930 */ 931 AP_CORE_DECLARE(void *) ap_set_config_vectors(server_rec *server, 932 ap_conf_vector_t *section_vector, 933 const char *section, 934 module *mod, apr_pool_t *pconf); 935 936 #endif 937 938 /* Hooks */ 939 940 /** 941 * Run the header parser functions for each module 942 * @param r The current request 943 * @return OK or DECLINED 944 */ 945 AP_DECLARE_HOOK(int,header_parser,(request_rec *r)) 946 947 /** 948 * Run the pre_config function for each module 949 * @param pconf The config pool 950 * @param plog The logging streams pool 951 * @param ptemp The temporary pool 952 * @return OK or DECLINED on success anything else is a error 953 */ 954 AP_DECLARE_HOOK(int,pre_config,(apr_pool_t *pconf,apr_pool_t *plog, 955 apr_pool_t *ptemp)) 956 957 958 /** 959 * Run the post_config function for each module 960 * @param pconf The config pool 961 * @param plog The logging streams pool 962 * @param ptemp The temporary pool 963 * @param s The list of server_recs 964 * @return OK or DECLINED on success anything else is a error 965 */ 966 AP_DECLARE_HOOK(int,post_config,(apr_pool_t *pconf,apr_pool_t *plog, 967 apr_pool_t *ptemp,server_rec *s)) 968 969 /** 970 * Run the open_logs functions for each module 971 * @param pconf The config pool 972 * @param plog The logging streams pool 973 * @param ptemp The temporary pool 974 * @param s The list of server_recs 975 * @return OK or DECLINED on success anything else is a error 976 */ 977 AP_DECLARE_HOOK(int,open_logs,(apr_pool_t *pconf,apr_pool_t *plog, 978 apr_pool_t *ptemp,server_rec *s)) 979 980 /** 981 * Run the child_init functions for each module 982 * @param pchild The child pool 983 * @param s The list of server_recs in this server 984 */ 985 AP_DECLARE_HOOK(void,child_init,(apr_pool_t *pchild, server_rec *s)) 986 987 /** 988 * Run the handler functions for each module 989 * @param r The request_rec 990 * @remark non-wildcard handlers should HOOK_MIDDLE, wildcard HOOK_LAST 991 */ 992 AP_DECLARE_HOOK(int,handler,(request_rec *r)) 993 994 /** 995 * Run the quick handler functions for each module. The quick_handler 996 * is run before any other requests hooks are called (location_walk, 997 * directory_walk, access checking, et. al.). This hook was added 998 * to provide a quick way to serve content from a URI keyed cache. 999 * 1000 * @param r The request_rec 1001 * @param lookup_uri Controls whether the caller actually wants content or not. 1002 * lookup is set when the quick_handler is called out of 1003 * ap_sub_req_lookup_uri() 1004 */ 1005 AP_DECLARE_HOOK(int,quick_handler,(request_rec *r, int lookup_uri)) 1006 1007 /** 1008 * Retrieve the optional functions for each module. 1009 * This is run immediately before the server starts. Optional functions should 1010 * be registered during the hook registration phase. 1011 */ 1012 AP_DECLARE_HOOK(void,optional_fn_retrieve,(void)) 1013 1014 #ifdef __cplusplus 1015 } 1016 #endif 1017 1018 #endif /* !APACHE_HTTP_CONFIG_H */
https://w.atwiki.jp/namihappy/pages/12.html
2015年人気の商品を超えて、当店が売買中 すべての商品はすべて新しく着きます。 すべての商品の品質がすべて検査するのが合格です。 みんなを歓迎して選り取りで買います。 当店の誠実と信用は取引して、品質は至上です。 みんなに安心して買ってもらいます。 http //www.topteenpo.com/
https://w.atwiki.jp/qhxptgzn/pages/17.html
he played three years of Bodystockings UK victory and returned to destroy a nation to ring a, besides never sounded too. Normally, unless the seven Prince out a barbarian, prairie King tribunal or the totem of the Empire, or simply not qualified sounded the Desheng drum. So saying, he this sounded Desheng drum must have something that we don t know, a very important reason is because the big little you." Cheng Gong this time out of the limelight is Bodystockings UK too big, destroy the caravan has been the military, destroy Xieyi ancestors, for an area of the human head won the hearts of the people, destroyed the fancies of men of letters contest four wit, exam on obtaining new division champion Lang gained popularity, de Yun Danzong reflects the violent strength, now bow can be said in the process the cloud is fail to show restraint, such as song of the city said zhongtian. This time, if we cannot put him down, is very dangerous appears in the emperor. While Bodystockings UK bow suddenly rise, the earliest in the emperor seems only Cheng Jia pushed him out, but now already changed the point of view, this process is the process of a bow hiding sword. Before is deliberately hidden edge, suddenly burst out. Always let Cheng arch in front, this let Huang Yanjing can t play, while Cheng arch is from various aspects make Cheng Jia is constantly growing, now is the emperor to suppress his momentum, stop him. The caravan, four talented, not not not not Danzong Xieyi ancestor, cloud, this time the emperor can only let seven emperor son back bow pressing process. "This cloud song city now also do some boring, people come Bodystockings UK back to accompany us to play or." Cheng Gonggang finished, Desheng drum sounds just stopped, an obvious than normal men and not women many sound fine voice. "Follow the Providence, Emperor Chao said seven prince commanded naval consumed along the pirates and bandits, training with one hundred thousand meter as God, one way overcome numerous Island, completely recovered in the coastal waters of thirty thousand, nearly a hundred islands surrender. Nearly fifty million people from this into my blue cloud Bodystockings UK Empire, through other delta route, let me the blue cloud empire in one fell swoop out of trapped south looking in central dilemma between. Seven Prince young brave, work letter seven Prince Wu prince, to enter the ministry. The three day after the prince of Wu Hui Yanjing, Wenwu Baiguan knees welcome." (to be continued) Tang wind in the forest when viewing kite injury, a day show girl stupidly turned to look around, although they listen in the rockery inside, this is a kind of what kind of killer? Bodystockings UK Even let them practice and then for a few years, they may not go beyond the style of Tang dynasty. No sympathy for these dead enemy, but the hearts of some good girls, because they want to catch these people before, to kill Lin Ruoyuan. "Wind, forest sister of is what poison?" Easy if morning beside quietly asked. Tang wind wrinkled brow slightly ease up a bit, openings way "aunt now muscular relaxation, pale complexion, six pulse weak, and with his blood and counter flow characteristics, should be in the peacock gallbladder and soft gluten powder like poison. Also thanks to her just promotion day order goods, itself also has certain anti toxicity, or simply can not support such a long time." "Saved is?" Easy if morning heard this, face Bodystockings UK a nervous look not to relax a little bit. "I am here, nature can be saved!" Tang wind around the waist and lifted Lin Ruoyuan up from the ground, turned and looked around, rapidly toward a direction towards the. A group of disciples followed by day show. Came to the front of a room, Tang wind kicked open the door, and went in. The room was originally should be the giant Jianmen female pupil of a place to live, the house is also littered with some of the girls in the decoration, the room has a sweet Bodystockings UK - https //www.amoretu.com/sexy-hosiery-bodystockings bed, bed covered with a red cord, looks like the people who once lived there identity should not low, but after the collapse of the giant sword, no one care the inverted, and accumulated a lot of dust. Directly to the bedside, Tang and the wind forest if the kite gently down. "Easy to uncle and the leaving, others out alert." Tang Feng pointed to a somewhat familiar day show disciple said, then looked at the benwolf "you go too." Benwolf obediently turned round, and went out of the room. After everyone left, Tang Fengcai took out a bottle of good potions from phantom space, to the day show his disciples "sister, could you put these drugs smear in my aunt s wound." These potions are from the Mo tassel hand, fusion of her gang heart energy, healing effect could not be better. Lin Ruoyuan one when the guard when rockery hole before, had been the chief weapons and wounded three who, although now the bleeding has stopped, but apply gold sore medicine is good for recovery. The day show disciple nodded, took the bottle from the style of Tang hand, quietly looked up to the Tang wind one eye, pull down the bed curtain, will Lin Ruoyuan and Tang wind is separated, it reached out to uncover her clothes. Male big obstacle of mother, father female big obstacle. Tang Feng although Lin Ruoyuan zone is large, but he now is not small, some bad things personally, can let others help. The elder sister in the forest when the kite for dressing, Tang wind down thought for a moment, take ten herbs from the phantom space, easy if morning greeting a track "Uncle please come with me." Two people together out of the door, in the Tang wind lead, soon came to the location of the kitchen, Tang Feng instructed "Shi Shuxian burning hot, I find the medicine pestle.
https://w.atwiki.jp/nicocache_nl/pages/25.html
@wikiの制限によりリンクなどは元ページのままです。 FrontPage nlFilter nlFilter† Javaの正規表現を用いたフィルタを簡単に記述できます。 NicoCache_nlをインストールしたフォルダ(jarと同じフォルダ)にある「nlFilters」フォルダにあるテキストファイルは、自動的にフィルタとして読み込まれます。 すでにあるファイルに追加すると、バージョンアップ時に上書きされることがあるので、新しく適当な名前のテキストファイルを作成して、そちらに追加するのがお勧めです。 その時、すでにあるフィルタの一行目をコピーしておくと、フィルタの文字コードで悩まなくてすみます(Windowsの方はあまり気にしなくてもいいです)。 また、フィルタはファイル名順に適用され、同じファイルの中でも上に書かれている物から順に適用されます。 nlFilterの記述例はnlFilter.txtに 正規表現の仕方は正規表現に あります。 ↑ フィルタ一覧† nlFilter フィルタ一覧 ヘッダ系フィルタ ユーザー名・プレミアム登録を削除 (一般会員) (2010/02/23) NicoVideo header light(9) (2010/03/10) 05_topBarFilter.txt 改造版 (2010/10/14) ランキング_PopupMenu (2010/03/09) コメント系フィルタ kill @JUMP(2009/11/09) commentFilter(2009/05/27) 消去系フィルタ 「メニュー▼」を削除(2010/04/17) 色々まとめて削除(2009/10/30) rankingページ宣伝削除(2009/05/06) watchページ色々まとめて削除(2009/12/19) 検索ページ色々まとめて削除(2010/06/24) myページ色々まとめて削除(2009/12/28) liveページ色々まとめて削除(2009/12/28) 右列の広告消去(2009/12/04) 強調表示系フィルタ ranking カテゴリページ再生時間で色分け(2009/10/30) rankingページ関連フィルタ カテゴリページ 1 → 2列表示(2010/06/24) カテゴリ丸ごと消去 (2010/09/30) watchページ関連フィルタ 説明文横サムネ表示(2010/10/17) 投稿者名下サムネ追加(投稿者名非表示対応)(2010/10/14) サムネ表示(2010/10/14) watchページ:主コメの高さ制限 wrapperReplaceFilter 改造版 ニコニコ市場を表示・非表示リンク(2010/10/15) 主コメ高さ制限 + 連続する空白文字を改行に変換(2009/07/30) 動画タイトル横にキャッシュアイコンを表示(2010/10/14) 大百科の記事 を記事がある場合のみ表示するフィルタ(2009/11/01) 説明文横サムネ追加(2009/06/13) 削除にワンクッション(2010/02/14) サムネイル表示 + 主コメ高さ制限 + 主コメ整形 + α(2010/10/28) ResizeVideoCustom for FlvPlayerWrapper(2010/06/13) mylistページ関連フィルタ mylistで最新コメ表示(2010/03/29) マイリスト500件表示(2009/11/07) マイリストコメント部分にあるスペースを改行タグに置換 + α(2009/11/01) マイリスト 1 → 2列表示(2010/10/30) historyページ関連フィルタ 視聴履歴 1 → 2列表示(2010/02/04) 視聴履歴を個別に削除(2010/06/05) 視聴履歴を個別に削除 + 1→2列表示(2010/10/30) 検索系ページ関連フィルタ マイリスト数プログレスバー表示(2010/06/21) キーワード検索ページ色検索箱削除(2010/06/25) 検索結果多列表示フィルタ(2010/10/28) Liveページ関連フィルタ アイコンと日付の改行消去(2009/08/16) その他フィルタ 検索のソートを変更(2010/06/05) 投稿者フィルター削除(2010/02/05) マウスオーバーのちらつき除去(2010/01/17) 削除済み動画をdeletedフォルダへ移動(2010/08/12) サムネ拡大(2009/12/12) mylist消去サムネ復活(2009/11/16) history消去サムネ復活(2009/11/16) 外部サムネ消去サムネ復活(2009/11/16) メニューをプルダウンに(2010/03/20) topBar左側をプルダウンに(2010/02/22) nlAnimeChannelRewriter の簡易nlFilter版(2009/06/18) Wrapper使用で動画タイトルに「@」が含まれる動画の不具合回避(2010/01/19) フィルタ詰め合わせ 個人的に弄った mylistCountBar とその他 (2010/11/06) popThumb_FA 他 (2010/10/30) nlApiUtilExtension用フィルタ FaMyList TopBar(2010/02/22) InfiMyList TopBar(2010/02/22) watchページにコメント一覧を埋め込む(2010/01/31) マイリスト画面からnlApiUtilのマイリスト画面呼び出し(2010/10/27) フィルタ編集支援 正規表現 フィルタのリロード(NicoCache_nlの再起動) コメント ↑ ヘッダ系フィルタ† ↑ ユーザー名・プレミアム登録を削除 (一般会員) (2010/02/23)† # 2010/02/23 ユーザー名・プレミアム登録を削除 (一般会員)# デフォではみ出すようになったので作ってみた[Replace]Name = removeUsername (Regular)URL = www\.nicovideo\.jpMatch span style= color #FFF; 一般会員 .* さん /span - a href= /\?p=premium_top sec=bar style= color #3CC; プレミアム登録 /a \| Replace #作者注:\|の後に半角スペースが1つあります。 ↑ NicoVideo header light(9) (2010/03/10)† NicoVideo header_light(9) ヘッダ用フィルタセット (100310)http //nicolist.net/nicocache_nl/up/img/nl355.zip header_light(9) (100615_mod_101028) 仕様変更対応 (仮)http //nicolist.net/nicocache_nl/up/img/nl636.txt ↑ 05_topBarFilter.txt 改造版 (2010/10/14)† http //nicolist.net/nicocache_nl/up/img/nl620.txt ↑ ランキング_PopupMenu (2010/03/09)† http //nicolist.net/nicocache_nl/up/img/nl354.zip ↑ コメント系フィルタ† ↑ kill @JUMP(2009/11/09)† [Replace]Name = kill @JUMPURL = msg.nicovideo.jp/\d+/api/EachLine = TRUEMulti = TRUEMatch ( chat [^ ]*?fork= 1 )([^ ]* )((@|@)ジャンプ( | )[^##][\s\S]*? /chat )( chat [^ ]*?fork= 1 )([^ ]* )/[\s\S]*?jump\([ ](..\d+)[ ][\s\S]*?(,msg [ ]([\s\S]*?)[ ]|)[\s\S]*?\) /chat ( chat [^ ]*?fork= 1 )([^ ]* )/seekDisabled=true /chat ( chat [^ ]*?fork= 1 ) mail= ([^ ]*) ([^ ]* )((@|@)シーク禁止[^ ]* /chat )( chat [^ ]*?fork= 1 )([^ ]* )((@|@)シーク禁止[^ ]* /chat ) Replace $1 mail= @30 shita cyan $2[投コメ]$3$1 mail= @30 shita cyan $2[投コメ]/JUMP $3 $5 /chat $1 mail= @100 shita cyan $2[投コメ]/seekDisabled=true /chat $1 mail= $2 shita cyan $3[投コメ]$4$1 mail= @30 shita cyan $2[投コメ]$3 ↑ commentFilter(2009/05/27)† commentFilter 1.0.5http //oamaxa2.u-abel.net/NicoCache/commentFilter.txt ↑ 消去系フィルタ† ↑ 「メニュー▼」を削除(2010/04/17)† [Replace]Name = 「メニュー▼」を削除URL = www.nicovideo.jpMatch $NEST( td,onmouseover= showOBJ\( headmenu_g2 \); , /td ) Replace ↑ 色々まとめて削除(2009/10/30)† [Replace]Name = 色々まとめて削除URL = www\.nicovideo\.jp/EachLine = TRUEMulti = FALSEMatch title (? マイリスト )?(.+?)‐ニコニコ動画.+? /title td div class= ads_468 !--↓表示してもよい↓-- (?s .+?) !--↑表示してもよい↑-- \r\n\r\n /div /td Event\.observe\(document, keydown , function \(event\) \{[^\}]+}.bindAsEventListener\(window\)\); Replace title $1 /title # ページタイトルから-ニコニコ動画(*)などを消す# 上部広告消去# キー操作制限解除 ↑ rankingページ宣伝削除(2009/05/06)† [Replace]Name = rankingページ 宣伝削除URL = www.nicovideo.jp/ranking/Multi = TRUEMatch div id= item\d+_uad_current [\s\S]*? /div Replace ↑ watchページ色々まとめて削除(2009/12/19)† [Replace]Name = watchページ色々まとめて削除 1URL = www\.nicovideo\.jp/watch/EachLine = TRUEMulti = FALSEMatch (? =id= des_2 ) style= display none; !--↓省略モード↓-- (?s .+?) !--↑省略モード↑-- $NEST( p,alt= 隠す , /p ) !--↓メニュー↓-- (?s .+?) !--↑メニュー↑-- Replace style= display block; # 常に詳細モード表示# 省略モード消去# 切り替え用画像消去# [ニコニ広告で宣伝する]等消去[Replace]Name = watchページ色々まとめて削除 2URL = www\.nicovideo\.jp/watch/EachLine = FALSEMulti = FALSEMatch /head Replace style type= text/css !--#PAGEHEADER { display none;}/* 検索の消去 */img[alt= 登録タグ ] { display none;}/* [登録タグ]画像の消去 */.mb16p4 { display none;}/* タグ連動広告消去 */.ads_tag { display none;}/* 下部の動画情報とその下の広告 */form[id^= mymemory ] + p { display none;}/* [マイメモリーに保存する]等の消去 */#WATCHFOOTER p first-of-type { display none; }/* 動画下の「使い方」等の消去 */-- /style $0 ↑ 検索ページ色々まとめて削除(2010/06/24)† [Replace]Name = 検索ページ色々まとめて削除URL = www\.nicovideo\.jp/(? tag/|search/)EachLine = FALSEMulti = FALSEMatch /head Replace style type= text/css !--#web_pc_footer { display none;} /* 下部広告 */#nicoads, .uad_container { display none;}/* ニコニ広告消去 */-- /style $0 ↑ myページ色々まとめて削除(2009/12/28)† [Replace]Name = myいろいろ調整URL = www\.nicovideo\.jp/(? my(? /top)?$|user/)Multi = FALSEEachLine = FALSEMatch /head Replace style type= text/css !--.content_312 table first-of-type { display none;}/* [生放送中の番組]下の広告 */-- /style $0 ↑ liveページ色々まとめて削除(2009/12/28)† [Replace]Name = 検索等消去URL = live\.nicovideo\.jp/watch/Multi = FALSEEachLine = FALSEMatch /head Replace style type= text/css !--#header { display none;}/* 検索消去 */#nextprev { display none;}/* [前・次の番組へ]消去 */img[alt= Twitterでつぶやく ] { display none;}/* [Twitterでつぶやく]を消去 */#alertbar { display none;}/* 生放送下の[使い方]等 */.ichiba_frm + div { display none;}/* 市場下の「ニコ生アラート」「ニコ生モバイル」の広告 */-- /style /head ↑ 右列の広告消去(2009/12/04)† [Replace]Name = 右列の広告消去URL = www\.nicovideo\.jp/(? tag/|search/|mylist/|newarriva|history|ranking)EachLine = TRUEMulti = TRUEMatch /head (\r\n)(class= SYS_box_item .+\r?\n table) width= 672 width= 672 (border= 0 cellpadding= 4 cellspacing= 0 summary= history ) !--↓右列↓-- (?s .+?) !--↑右列↑-- Replace style type= text/css !-- .content_672 { width 100%;} .body_984 { width 984px; } -- /style $1$0$1$1 # 左列の幅&3列フィルタとの干渉よけ# 動画説明部の幅(mylist)# 動画説明部の幅(history)# 右列の広告 ↑ 強調表示系フィルタ† ↑ ranking カテゴリページ再生時間で色分け(2009/10/30)† [Replace]Name = rankingカテゴリページ再生時間で色分けURL = www\.nicovideo\.jp/ranking/Multi = TRUEEachLine = TRUEMatch id= item\d+ (class= thumb_frm ) style= [^ ]+ ( (? \r\n)+ table) width= 648 ((? .+\r?\n)+? p class= vinfo_length span \d )id= item\d+ (class= thumb_frm style= )[^ ]+( (? \r\n)+ table) width= 648 ((? .+\r?\n)+? p class= vinfo_length span 1\d )id= item\d+ (class= thumb_frm style= )[^ ]+( (? \r\n)+ table) width= 648 ((? .+\r?\n)+? p class= vinfo_length span 2\d )id= item\d+ (class= thumb_frm style= )[^ ]+( (? \r\n)+ table) width= 648 ((? .+\r?\n)+? p class= vinfo_length span 3\d )id= item\d+ (class= thumb_frm style= )[^ ]+( (? \r\n)+ table) width= 648 ((? .+\r?\n)+? p class= vinfo_length span (? [4-9]\d|\d{3}) ) Replace $1$2$3$1background-color lightcyan; border solid 2px royalblue;$2$3$1background-color antiquewhite; border solid 2px salmon;$2$3$1background-color #CCFFBB; border solid 2px mediumseagreen;$2$3$1background-color #eaeaea; border solid 2px black;$2$3 # 副作用として宣伝状態の色変更が解除される ↑ rankingページ関連フィルタ† ↑ カテゴリページ 1 → 2列表示(2010/06/24)† [Replace]Name = ranking 1→2列表示1URL = www\.nicovideo\.jp/ranking/Multi = FALSEEachLine = FALSEMatch /head Replace style type= text/css !--.body_984 { width 100%;}.content_672 { width 100%;}.content_312 { display none;}.list_count { width 45px !important;}/* 順位部分のスペース調整 */[class^= thumb_frm ] { width auto !important; padding-left 2px !important;}/* thumb_frmの順位部分左側スペース調整 */[class^= thumb_frm ] table, [class^= thumb_frm ] td last-of-type, [class^= thumb_frm ] td div { width 100% !important;}.watch { white-space normal; line-height 1.2;}-- /style $0 [Replace]Name = ranking 1→2列表示2URL = www\.nicovideo\.jp/ranking/Multi = FALSEEachLine = TRUEMatch (? = !--↑カテゴリ選択↑-- \r?\n /div \r?\n)(?=\r?\n script type= text/javascript !--\r?\nNico\.LazyImage\.initialize\(\);) Replace table style= width 100%; table-layout fixed; tbody /tbody /table # tableタグ開始# tableタグ終了[Replace]Name = ranking 1→2列表示3URL = www\.nicovideo\.jp/ranking/Multi = TRUEEachLine = FALSEMatch ( !--↓id有↓-- (?s .+?) !--↑id有↑-- (? \r?\n)+)( !--↓id有↓-- (?s .+?) !--↑id有↑-- (? \r?\n)+) Replace tr td style= width 50%; vertical-align top; $1 /td td style= width 50%; vertical-align top; $2 /td /tr # tr,td挿入[Replace]Name = ranking 1→2列表示4URL = www\.nicovideo\.jp/ranking/Multi = FALSEEachLine = FALSEMatch table width= 664 ( cellpadding= 4 cellspacing= 0 id= switch (?s .+?) /form /td )(?=(?s .+?)( td nowrap align= right 期間: /td (?s .+?)) td style= color #666; \| /td \r?\n( td nowrap align= right 対象: /td (?s .+?) /select /form /td )) Replace table width= 100% class= font12 $1$2$3 #右側にある「期間」「対象」を「カテゴリ合算」の位置に[Replace]Name = ranking 1→2列表示5URL = www\.nicovideo\.jp/ranking/Multi = TRUEEachLine = FALSEMatch ( !--↓id有↓-- (?s .+?))(\t !---- (?s .+?) !---- )((?s .+?))(?= /div \r?\n !--↑id有↑-- ) Replace $1$3$2 # 宣伝コメントの表示入れ替え ↑ カテゴリ丸ごと消去 (2010/09/30)† [Replace]Name = 総合ランキングから特定カテゴリまるごと削除URL = www.nicovideo.jp/rankingEachLine = TRUEMulti = TRUEMatch th a href= [^ ]+g_ent [^ ]+ エンタ・音楽・スポ /a /th \s+ th[^ ]+ img[^ ]+ /th $NEST( td,g_ent| a href= [^ ]+/(ent|music|sport) , /td ) th a href= [^ ]+g_life [^ ]+ 教養・生活 /a /th \s+ th[^ ]+ img[^ ]+ /th $NEST( td,g_life| a href= [^ ]+/(animal|coocing|diary|nature|science|history|radio|lecture) , /td ) th a href= [^ ]+g_politics [^ ]+ 政治 /a /th \s+ th[^ ]+ img[^ ]+ /th $NEST( td,g_politics| a href= [^ ]+/politics , /td ) th a href= [^ ]+g_try [^ ]+ やってみた /a /th \s+ th[^ ]+ img[^ ]+ /th $NEST( td,g_try| a href= [^ ]+/(sing|play|dance|draw|tech) , /td ) th a href= [^ ]+g_culture [^ ]+ アニメ・ゲーム /a /th \s+ th[^ ]+ img[^ ]+ /th $NEST( td,g_culture| a href= [^ ]+/(anime|game) , /td ) th a href= [^ ]+g_popular [^ ]+ 殿堂入りカテゴリ /a /th $NEST( td,g_popular| a href= [^ ]+/(imas|toho|vocaloid|are|other) , /td ) Replace 消したくないカテゴリを消して(2行一組で)から使用してください ↑ watchページ関連フィルタ† ↑ 説明文横サムネ表示(2010/10/17)† [Replace]Name = 説明文横サムネ表示1URL = www\.nicovideo\.jp/watch/EachLine = FALSEMulti = FALSEMatch ( !--↓動画説明文↓-- \r?\n div id= itab_description class= info in )[^ ]* \r?\n p class= font12 style= padding 4px; Replace $1 table td style= background #F9F9F9; img alt= smid src= http //tn-skr2.smilevideo.jp/smile?i= id style= width 130px; height 100px; border solid 1px #AAA; padding 2px; margin 0px class= img_std128 / /td td class= font12 style= padding 4px; [Replace]Name = 説明文横サムネ表示2URL = www\.nicovideo\.jp/watch/EachLine = FALSEMulti = FALSEMatch /p \r?\n( /div \r?\n !--↑動画説明文↑-- ) Replace /td /table $1 ↑ 投稿者名下サムネ追加(投稿者名非表示対応)(2010/10/14)† [Replace]Name = 投稿者名下サムネ追加(投稿者名非表示対応)URL = www\.nicovideo\.jp/watch/Multi = FALSEEachLine = FALSEMatch ( div class= owner_prof [\s\S]+?)(?= /div ) Replace $1 table width= 240 height= 120 cellpadding= 0 tr td width= 100% align= center img src= http //tn-skr1.smilevideo.jp/smile?i= id style= width 130px; height 100px; border solid 1px #CCC; padding 2px; / /td /tr /table ↑ サムネ表示(2010/10/14)† [Replace]Name = サムネ表示URL = www.nicovideo.jp/watch/Match !--↑USER↑-- Replace /td /tr tr td br /td td width= 100% img src= http //tn-skr1.smilevideo.jp/smile?i= id style= border solid 2px #333; ↑ watchページ:主コメの高さ制限† [Replace]Name = watchページ:主コメの高さ制限URL = www\.nicovideo\.jp/watch/Match div id= itab_description [^ ]* Replace $0 style= max-height 100px; overflow-y auto; ↑ wrapperReplaceFilter 改造版† 新プレデフォルト:http //nicolist.net/nicocache_nl/up/img/nl383.txt wrapperデフォルト:http //nicolist.net/nicocache_nl/up/img/nl382.txt ↑ ニコニコ市場を表示・非表示リンク(2010/10/15)† [Replace]Name = ニコニコ市場を表示・非表示リンクURL = www\.nicovideo\.jp/watch/Multi = FALSEEachLine = FALSEMatch (?= div class= tag_sync ) Replace span class= font12 style= color #CCC; float right; a id= nlIchibaToggle1 href= javascript void(0); style= display none; onclick= Cookie.set( nlIchibaToggle , 1); hideOBJ( nlIchibaToggle1 ); showOBJ( nlIchibaToggle2 ); showOBJ( ichiba_placeholder ); return false; ニコニコ市場を表示 /a a id= nlIchibaToggle2 href= javascript void(0); style= display none; onclick= Cookie.set( nlIchibaToggle , 0); showOBJ( nlIchibaToggle1 ); hideOBJ( nlIchibaToggle2 ); hideOBJ( ichiba_placeholder ); return false; ニコニコ市場を隠す /a /span script type= text/javascript !--Nico.onReady(function(){if (Cookie.get( nlIchibaToggle )== 1 ) {\$( nlIchibaToggle1 ).onclick();} else {\$( nlIchibaToggle2 ).onclick();}});-- /script ↑ 主コメ高さ制限 + 連続する空白文字を改行に変換(2009/07/30)† [Replace]Name = 主コメ高さ制限URL = www.nicovideo.jp/watch/EachLine = TRUEMatch ( p class= video_des )([^ ]* .+? /p )[\u0020\u2000\u3000]{9,}+(?=.+ span id= nl_br ) p [^ ]+class= video_des_top /p Replace $1 style= max-height 72px; overflow-y auto; border-top-width 2px; word-break break-all; $2 span id= nl_br /span br / ↑ 動画タイトル横にキャッシュアイコンを表示(2010/10/14)† [Replace]Name = 動画タイトル横にキャッシュアイコンを表示URL = www\.nicovideo\.jp/watch/idGroup = 2Match span id= nicommons (.+?|) /span (?s .+?)/ads/\?vid=(.+?) video_watch Replace img src= /local/cacheicon.gif style= margin-left 10px; $0 $ img src= /local/cacheeconomy.gif style= margin-left 10px; $0 ↑ 大百科の記事 を記事がある場合のみ表示するフィルタ(2009/11/01)† [Replace]Name = view articleURL = www.nicovideo.jp/watch/EachLine = TRUEMatch ( !--↓大百科↓-- \s* table[^ ]+style= [^ ]+\smargin 4px;) (\$\( nicopedia_video_des \))(\.update\(summary\);)[^;]+; Replace $1 display none; $1$2 Element.show($1.parentNode.parentNode.parentNode.parentNode); ↑ 説明文横サムネ追加(2009/06/13)† [Replace]Name = 説明文横サムネ追加URL = www.nicovideo.jp/watch/Multi = FALSEMatch ( div style= margin 4px;)( [\s\S]*?)( p [\s\S]*? /p [\r\n]*?)( p class= video_des )( [\s\S]*? /div ) Replace table id= thumbnail border= 0 style= border solid 1px #CCC;background-color rgb(249, 249, 249); tr td valign= top $1$2$4 style= border none; $5 /td td img style= border solid 1px #CCC; margin 4px; src= http //tn-skr2.smilevideo.jp/smile?i= id /td /tr /table ※「50_nlFilter_sample」の「Watchページサムネ追加」は使用しないでください ↑ 削除にワンクッション(2010/02/14)† [Replace]Name = 削除にワンクッションURL = www.nicovideo.jp/watch/Match (? =onclick= )(?=var nl_delBtn) Replace if(!confirm( 消しますよ? ))return; ↑ サムネイル表示 + 主コメ高さ制限 + 主コメ整形 + α(2010/10/28)† http //nicolist.net/nicocache_nl/up/img/nl639.txt ↑ ResizeVideoCustom for FlvPlayerWrapper(2010/06/13)† [Replace]Name = ResizeVideoCustom for FlvPlayerWrapperURL = www\.nicovideo\.jp/watch/Match (?= div id= flvplayer_container ) Replace script type= text/javascript !--function reaspect(r) { var swf=\$( flvplayer ); var obj= nico.videowindow.video_mc.video. ; var w=swf.TGetProperty(obj,8); var h=swf.TGetProperty(obj,9); var y=swf.TGetProperty(obj,1); swf.TSetProperty(obj,9,w*r); swf.TSetProperty(obj,1,parseFloat(y)+(h-w*r)/2);}function resize(p) {var swf=\$( flvplayer ); var swfc=\$( flvplayer_container ); swf.TSetProperty( _root ,2,p); swf.TSetProperty( _root ,3,p); swf.style.width=swfc.style.width=952*p/100+ px ; swf.style.height=swfc.style.height=540*p/100+ px ;}-- /script table tr td div class= tool_bg_L div class= tool_bg_R VIEW SIZE /div /div /td td button onclick= resize(0) BGM /button button onclick= resize(50) x0.5 /button button onclick= resize(100) x1.0 /button button onclick= resize(125) x1.25 /button button onclick= resize(150) x1.5 /button button onclick= resize(200) x2.0 /button button onclick= reaspect(0.75) 4 3 /button button onclick= reaspect(0.5625) 16 9 /button /td /tr /table ↑ mylistページ関連フィルタ† ↑ mylistで最新コメ表示(2010/03/29)† [Replace]Name = mylistで最新コメ表示URL = www\.nicovideo\.jp/(? mylist/\d+|my/mylist)EachLine = TRUEMatch /head \$item\.item_data\.title\|word_wrap\} /a /h3 Replace script type= text/javascript src= /local/nlThumbInfoRewriter.js /script $0$0 p class= font12 a href= javascript void(0); onclick= getFullDesc(this); ... /a /p p class= vinfo_last_res {\$item.item_data.last_res_body|word_wrap} /p ※「15_thumbInfoFilter(基本).txt」の「動画説明全文読み込み(mylist)」と置き換え ↑ マイリスト500件表示(2009/11/07)† [Replace]Name = マイリスト500件表示URL = res\.nimg\.jp/js/mylist2\.jsMatch items_per_page \s*\d+, Replace items_per_page 500, # 修正したらブラウザのキッシュクリア リロードが必要 ↑ マイリストコメント部分にあるスペースを改行タグに置換 + α(2009/11/01)† [Replace]Name = マイリストコメント部分整形URL = www\.nicovideo\.jp/mylist/\d+Multi = TRUEEachLine = TRUEMatch description [^ ]+ ,(。)(? | )*+(?!(? \\r|\\n))(?=.+?// nl_br)(? !(? |\\n))(? | )*+(■|◆)(?=.+?// nl_br)(? | ){2,}+(?!(? \\r|\\n))(?=.+?// nl_br) Replace $0// nl_br$1\\r\\n\\r\\n$1\\r\\n ↑ マイリスト 1 → 2列表示(2010/10/30)† [Replace]Name = マイリスト 1→2列表示(公開mylist)URL = www\.nicovideo\.jp/mylist/Multi = FALSEEachLine = FALSEMatch /head Replace style type= text/css !--.body_984 { width 1300px;}/* マイリスト全体の幅 */.content_672 { width 100%;}/* 左列の幅 */.content_312 { display none;}/* 右列消去 */#SYS_page_items after { content . ; clear both; height 0px; display block; visibility hidden;}/* 下部のページングが上に移動してこないように */.SYS_box_item { width 50%; float left;}/* 2列化用float指定 */.SYS_box_item nth-of-type(odd) { clear both; } /* 2列化用奇数clear指定 */.SYS_box_item table { width auto; margin 0px 6px 6px 0px !important; background-color #F9FCFC; border #C9CFCF 2px solid; -moz-border-radius 10px; -webkit-border-radius 10px; -moz-box-shadow 4px 4px 4px gray; -webkit-box-shadow 4px 4px 4px gray;}/* 動画説明部分のスタイル */-- /style $0 [Replace]Name = マイリスト 1→2列表示(my/mylist)URL = www\.nicovideo\.jp/my/mylistMulti = FALSEEachLine = FALSEMatch /head Replace style type= text/css !--.contents { width 1400px;}#mypageNavs { width 240px;}#mypageNavs,#accountBoxWrap,#myNavWrap { width 200px;}#accountBoxWrap { padding 0;}#accountBox { padding 8px 0 0 0;}#accountBox ul { margin 0 0 0 10px;}#mypageContents { width 1200px;}#myContBody { padding 10px 5px;}.myContList li { width 49%; height auto; min-height 110px !important; float left;}.myContList li nth-of-type(odd) { clear both; margin-right 2%;}.mypageThumb, .mypageThumb img { width 130px !important; height 100px !important;}.mylistVideo { margin-left 170px !important; margin-top 20px;}.buttons { top -25px !important;}.mylistTime { color #555 !important;}.myListCommentT { border 1px solid #BCC ;-moz-border-radius 8px; -webkit-border-radius 8px; border-radius 8px; width 400px !important; background transparent none !important;}.myListCommentB,.myListCommentL,.myListCommentR { background transparent none !important;}.SYS_box_memo_edit textarea { width 400px !important;}.myContList after { content . ; clear both; height 0px; display block; visibility hidden;}-- /style $0 ※CSS3の使えるブラウザ専用(Firefox,Google Chrome等)、IE8以下では表示が崩れます ↑ historyページ関連フィルタ† ↑ 視聴履歴 1 → 2列表示(2010/02/04)† [Replace]Name = 視聴履歴 1 → 2列表示URL = www\.nicovideo\.jp/historyMulti = TRUEEachLine = FALSEMatch ( tr td colspan= 2 (?s .+?) /p \r\n /td \r\n /tr \r\n)( tr td colspan= 2 (?s .+?) /p \r\n /td \r\n /tr \r\n)? Replace tr td style= width 50%; vertical-align top; table $1 tr td /td /tr /table /td td style= width 50%; vertical-align top; table $2 tr td /td /tr /table /td /tr ※IE8で「視聴履歴を個別に削除」と一緒に使うと消去できない不具合を修正 ↑ 視聴履歴を個別に削除(2010/06/05)† [Replace]Name = 視聴履歴を個別に削除 1 (2010/06/05)URL = www\.nicovideo\.jp/historyMulti = TRUEEachLine = FALSEMatch ( table)( [^ ]+ \r\n tr valign= top \r\n td \r\n p a href= watch/(\w{2}\d+) [^ ]* img(?s .+?))(?= /p ) Replace $1 class= history_remove id= history_$3 $2 input style= float right; type= button class= submit value= 削除 title= onclick= history_remove( $3 ) [Replace]Name = 視聴履歴を個別に削除 2 (2010/06/05)URL = www\.nicovideo\.jp/historyMulti = FALSEEachLine = FALSEMatch /body Replace script type= text/javascript !--function history_remove(id){/* Element.remove(\$( history_ +id).nextSibling);*/ Element.remove(\$( history_ +id)); (Cookie.get( nicohistory )+ , ).match( ^(.*?)( +id+ [^,]+,)(.*)\$ ); if(RegExp.\$2){ Cookie.set( nicohistory ,RegExp.\$1+RegExp.\$3.slice(0,-1),9999999999, .nicovideo.jp , / ) }if(document.getElementsByClassName( history_remove ).length==0){ location.reload()}}-- /script $0 firefox3.5,chrome5.0,IE8で確認。消すボタンは画像の下です。 ↑ 視聴履歴を個別に削除 + 1→2列表示(2010/10/30)† [Replace]Name = 視聴履歴を個別に削除 + 1→2列表示 1URL = www\.nicovideo\.jp/my/historyMulti = FALSEEachLine = FALSEMatch /head Replace style type= text/css !--.contents { width 1400px;}#mypageNavs { width 240px;}#mypageNavs,#accountBoxWrap,#myNavWrap { width 200px;}#accountBoxWrap { padding 0;}#accountBox { padding 8px 0 0 0;}#accountBox ul { margin 0 0 0 10px;}#mypageContents { width 1200px;}#myContBody { padding 10px 5px;}.myContList li { width 49%; height 110px; float left;}.myContList li nth-of-type(odd) { clear both; margin-right 2%;}.mypageThumb, .mypageThumb img { width 130px !important; height 100px !important;}.mylistVideo { margin-left 140px !important;}.mylistTime { color #555 !important;}.history_remove { float right; padding 0 !important; margin 0 !important; font-size 10px;}.myContList after { content . ; clear both; height 0px; display block; visibility hidden;}-- /style $0 [Replace]Name = 視聴履歴を個別に削除 + 1→2列表示 2URL = www\.nicovideo\.jp/my/historyMulti = TRUEEachLine = FALSEMatch (? = li)( [\r\n\t]+ a href= watch/([^ ]+) class= mypageThumb (?s .+?) div class= mylistVideo ) Replace id= history_$2 $1 input class= history_remove type= submit value= 削除 title= 履歴を消去します onclick= history_remove( $2 ) [Replace]Name = 視聴履歴を個別に削除 + 1→2列表示 3URL = www\.nicovideo\.jp/my/historyMulti = FALSEEachLine = FALSEMatch /body Replace script type= text/javascript !--function history_remove(id){Element.remove(\$( history_ +id).nextSibling); Element.remove(\$( history_ +id)); (Cookie.get( nicohistory )+ , ).match( ^(.*?)( +id+ [^,]+,)(.*)\$ ); if(RegExp.\$2){ Cookie.set( nicohistory ,RegExp.\$1+RegExp.\$3.slice(0,-1),9999999999, .nicovideo.jp , / ) }if(document.getElementsByClassName( history_remove ).length==0){ location.reload()}}-- /script $0 ※CSS3の使えるブラウザ専用(Firefox,Google Chrome等)、IE8以下では表示が崩れます ↑ 検索系ページ関連フィルタ† ↑ マイリスト数プログレスバー表示(2010/06/21)† http //nicolist.net/nicocache_nl/up/img/nl435.txt ↑ キーワード検索ページ色検索箱削除(2010/06/25)† [Replace]Name = キーワード検索ページ色検索箱削除URL = www\.nicovideo\.jp/searchMatch (?s)( div id= PAGEBODY ).+? p class= form_result_2 strong (.+?) /strong .+? strong class= search_total (.+?) /strong (.+?) !--↑関連タグ↑-- Replace $1 div class= mb8p4 h1 キーワード span class= search_word style= font-size 32px; id= search_words span class= search_word $2 /span /span を含む動画の検索結果 /h1 p class= font12 キーワード span class= search_word $2 /span を含む動画が strong class= search_total $3件 /strong みつかりました。 /p /div ↑ 検索結果多列表示フィルタ(2010/10/28)† CSS3版(firefox、google chrome、opera用)http //nicolist.net/nicocache_nl/up/img/nl647.txt 全ブラウザ対応版http //nicolist.net/nicocache_nl/up/img/nl648.txt ↑ Liveページ関連フィルタ† ↑ アイコンと日付の改行消去(2009/08/16)† [Replace]Name = アイコンと日付の改行消去URL = live\.nicovideo\.jp/watch/Multi = FALSEEachLine = FALSEMatch ( img src= img/nicolive/now_on_air\.gif\?\d+ alt= ONAIR )\r?\n.+ /p \r?\n Replace $1 ↑ その他フィルタ† ↑ 検索のソートを変更(2010/06/05)† [Replace]Name = 検索ソート変更1(コンボ設置)URL = (? seiga|www)\.nicovideo\.jp/(?!(? mylist_)?search)Match /p \r\n( table cellpadding= 0 cellspacing= 0 summary= style= border solid 1px #C9CFCF; ) Replace select id= SearchSort size= 1 option value= ?sort=f order=d 投稿 新 /option option value= ?sort=f order=a 投稿 古 /option option value= ?sort=v order=d selected= selected style= background-color #CCCCCC; 再生 多 /option option value= ?sort=v order=a style= background-color #CCCCCC; 再生 少 /option option value= ?sort=n order=d コメント 新 /option option value= ?sort=n order=a コメント 古 /option option value= ?sort=r order=d style= background-color #CCCCCC; コメント 多 /option option value= sort=r order=a style= background-color #CCCCCC; コメント 少 /option option value= ?sort=m order=d マイリス 多 /option option value= ?sort=m order=a マイリス 少 /option option value= ?sort=l order=d style= background-color #CCCCCC; 時間 長 /option option value= ?sort=l order=a style= background-color #CCCCCC; 時間 短 /option /select /p $1 [Replace]Name = 検索ソート変更2(コンボ設置)URL = (? seiga|www)\.nicovideo\.jp/(? mylist_)?searchMatch !---- を含む(? マイリスト|動画)が.+ Replace $0 select id= SearchSort size= 1 option value= ?sort=f order=d 投稿 新 /option option value= ?sort=f order=a 投稿 古 /option option value= ?sort=v order=d selected= selected style= background-color #CCCCCC; 再生 多 /option option value= ?sort=v order=a style= background-color #CCCCCC; 再生 少 /option option value= ?sort=n order=d コメント 新 /option option value= ?sort=n order=a コメント 古 /option option value= ?sort=r order=d style= background-color #CCCCCC; コメント 多 /option option value= sort=r order=a style= background-color #CCCCCC; コメント 少 /option option value= ?sort=m order=d マイリス 多 /option option value= ?sort=m order=a マイリス 少 /option option value= ?sort=l order=d style= background-color #CCCCCC; 時間 長 /option option value= ?sort=l order=a style= background-color #CCCCCC; 時間 短 /option /select [Replace]Name = 検索ソート変更3(リンク変更)URL = (? seiga|www)\.nicovideo\.jp/Match (? =p \+ / \+ encodeURIComponent\(s\)) Replace + document.getElementById( SearchSort ).value ※このままだと「再生 多」が選択されているので、変えたい人はselectedを変えてください。6月最初にあったレイアウト変更に対応 ↑ 投稿者フィルター削除(2010/02/05)† [Replace]Name = 投稿者フィルター削除URL = [^/]+\.nicovideo\.jp/api/getflv[/\?]Match ng_up=[^ ]+ Replace ↑ マウスオーバーのちらつき除去(2010/01/17)† [Replace]Name = マウスオーバーのちらつき除去URL = www.nicovideo.jpMulti = TRUEMatch (onmouseover=)( .*)(showOBJ\(\ .*\ \);) Replace onmousemove= $3 $1$2$3 ↑ 削除済み動画をdeletedフォルダへ移動(2010/08/12)† [Replace]Name = watchページURL = www\.nicovideo\.jp/watch/\w{2}\d+Require = isDeleted \s*true,idGroup = 1Match video \s* ([a-z]{2}[0-9]+) ,[\s\S]*? /script Replace $0 iframe src= http //www.nicovideo.jp/cache/ajax_topmove?$1-deleted height= 0 width= 0 style= display none; /iframe [Replace]Name = マイリストURL = www\.nicovideo\.jp/mylist/Match p class= vinfo_length Replace {if \$item.item_data.deleted % 8}{if \$item.item_data.cacheicon} iframe src= http //www.nicovideo.jp/cache/ajax_topmove?{\$item.item_data.video_id|escape url}-deleted height= 0 width= 0 style= display none; /iframe {/if}{/if}$0 [Replace]Name = 外部サムネURL = ext\.nicovideo\.jp/thumb/\w{2}\d+Require = video_deleted.jpgidGroup = 1Match a href= http //www.nicovideo.jp/watch/([a-z]{2}[0-9]+) [^ ]+ img [^ ]*?video_deleted.jpg [^ ]+ /a Replace $0 iframe src= http //www.nicovideo.jp/cache/ajax_topmove?$1-deleted height= 0 width= 0 style= display none; /iframe [Replace]Name = ランキングURL = www\.nicovideo\.jp/rankingRequire = deletedVideoListMatch /head Replace script type= text/javascript !--if (deletedVideoList Nico typeof Nico.onReady == function ) { Nico.onReady(function () { var flag = false; if (window.localStorage location.pathname.match(Cookie.get( ranking )|| /ranking\$ )) { if (new Date().getTime() - parseInt(window.localStorage[ NicoCache.deletedCacheMoveTime ] || 0) 1000 * 60 * 60 * 2) { flag = true; window.localStorage[ NicoCache.deletedCacheMoveTime ] = new Date().getTime(); } } else { flag = true; } if (flag) { new Ajax.Request( /cache/cachelist.json , { method GET , asynchronous true, onComplete function (xhr, json) { var cachelist = (json) ? json xhr.responseText.evalJSON(); var A; for (var i = 0, len = deletedVideoList.length; i len; i++) { var smid = deletedVideoList[i]; if (A = (cachelist[smid] || cachelist[smid + low ])) { if (A[1] == ) { new Ajax.Request( /cache/ajax_topmove? + smid + -deleted , { method GET , asynchronous true }); } } } } }); }});}//-- /script $0 ↑ サムネ拡大(2009/12/12)† [Replace]Name = サムネ拡大URL = www\.nicovideo\.jpMulti = FALSEEachLine = FALSEMatch /head Replace style type= text/css !--img.video_w64, img.video_w80, img.video_w96, img.video_w128 { width 130px; height 100px; border-width 1px;}.img_std64, .img_std80, .img_std96, .img_std128 { width 130px; height 100px; border-width 1px;}-- /style $0 ↑ mylist消去サムネ復活(2009/11/16)† [Replace]Name = mylist消去サムネ復活URL = www\.nicovideo\.jp/(? mylist/|my/mylist)Multi = FALSEEachLine = FALSEMatch title= \{if[^ ]+?(\{\$item\.item_data\.thumbnail_url\})\{/if\} Replace title= $1 ↑ history消去サムネ復活(2009/11/16)† [Replace]Name = history消去サムネ復活URL = www\.nicovideo\.jp/historyMulti = TRUEEachLine = FALSEMatch ( a href= watch/[a-z]{2}(\d+) ) img src= [^ ]+?video_deleted\.jpg Replace $1 img src= http //tn-skr1.smilevideo.jp/smile?i=$2 ↑ 外部サムネ消去サムネ復活(2009/11/16)† [Replace]Name = 外部サムネ消去サムネ復活URL = ext\.nicovideo\.jp/thumb/Multi = FALSEEachLine = FALSEMatch ( a href= [^ ]+?watch/[a-z]{2}(\d+) [^ ]+ img[^ ]+?) src= [^ ]+?video_deleted\.jpg Replace $1 src= http //tn-skr1.smilevideo.jp/smile?i=$2 ↑ メニューをプルダウンに(2010/03/20)† [Replace]Name = topBar(watch)URL = www\.nicovideo\.jp/watch/Multi = FALSEEachLine = FALSEMatch ランキング /a Replace $0 span id= nlbar /span \| a href= /cache/ キャッシュ /a \| /td td nowrap a href= javascript void(0) onclick= showOBJ( headmenu_nl ); return false; nlMenu▼ /a div id= headmenu_nl style= position relative; display none; div class= headmenu_g style= right 0px; text-align center; onmouseover= showOBJ( headmenu_nl ); return false; onmouseout= hideOBJ( headmenu_nl ); return false; div a href= /cache/ smid /movie style= display inline-block; 動画保存 /a | a href= /cache/ smid /audio style= display inline-block; 音声抽出 /a div div style= border-top 1px #AAA solid; color #FFF; span style= padding 0 4px; コメ抽出 ( a href= /cache/ memoryId .xml style= display inline-block; 通常 /a a href= /cache/_ memoryId .xml style= display inline-block; 投コメ /a ) /span div a style= text-decoration none; href= javascript void(0) onclick= var nl_delBtn=this;new Ajax.Request( http //www.nicovideo.jp/cache/ajax_rm? smid ,{method get ,onSuccess function(h){if(h.responseText== OK ){nl_delBtn.style.display= none ;}}}) 動画を削除 /a /div /div /td td span !--nlbar_end-- /span ※「05_topBarFilter.txt」に書いてある「topBar(watch)」と交換して使ってください ↑ topBar左側をプルダウンに(2010/02/22)† [Replace]Name = topBar左側プルダウンURL = www\.nicovideo\.jp/Multi = FALSEEachLine = FALSEMatch td strong style= color #FFF; ニコニコ /strong [^ ]+( a[^ ]+ 動画 /a ) \| ( a[^ ]+ 静画 /a ) \| ( a[^ ]+ 生放送 /a ) \| ( a[^ ]+ チャンネル /a ) Replace td nowrap onmouseover= showOBJ( site_jump_nl ); span style= color #CCC; text-decoration underline; ニコニコ▼ /span div id= site_jump_nl style= position relative; display none; onmouseover= showOBJ( site_jump_nl ); return false; div class= headmenu_g onmouseout= hideOBJ( site_jump_nl ); return false; style= left -8px; !--site_jump_stert-- $1 $2 $3 $4 !--site_jump_end-- /div /div /td td ↑ nlAnimeChannelRewriter の簡易nlFilter版(2009/06/18)† nlAnimeChannelRewriter の簡易nlFilter版http //nicolist.net/nicocache_nl/up/img/nl174.zip ↑ Wrapper使用で動画タイトルに「@」が含まれる動画の不具合回避(2010/01/19)† [Replace]Name = wrapper_@URL = www.nicovideo.jp/watch/Multi = TRUEMatch (so.addVariable\( (wv_title|thumbTitle) , [^ ]*? ) Replace $0.replace(/%40/g, %EF%BC%A0 ) ※Wrapper使用で動画タイトルに「@」が含まれる動画を再生しようとすると 「ローカル記憶領域」ダイアログが毎回表示される不具合を回避します ↑ フィルタ詰め合わせ† ↑ 個人的に弄った mylistCountBar とその他 (2010/11/06)† 個人的に弄った mylistCountBar その17とその他。http //nicolist.net/nicocache_nl/up/img/nl655.zip CacheIconCSS-Sprite キャッシュアイコンをimg要素からCSS Spriteに変更するフィルタ。mylistCountBar 動画のマイリスト数に数に応じたグラフをつけるフィルタ。mylistLoadCheck マイリストの準備が落ち着くのを待ってからclickイベントを起こすフィルタ。 ↑ popThumb_FA 他 (2010/10/30)† http //nicolist.net/nicocache_nl/up/img/nl646.zip popThumb_FA apiからデータを取得して説明文全表示(動画の場合)、ページにデータを保存するので無駄な通信が無い。history lock 視聴履歴をロックするwatch:cache移動セレクトボックス watchページにcache移動セレクトボックスを出す ↑ nlApiUtilExtension用フィルタ† ↑ FaMyList TopBar(2010/02/22)† [Replace]Name = FaMyList TopBarURL = www\.nicovideo\.jp/mylist/(\d+)Multi = FALSEEachLine = FALSEMatch !--nlbar_end-- /span Replace $0 | /td td nowrap a href= javascript void(0); onclick= showOBJ( FaMyList ); return false; FaMyList▼ /a div id= FaMyList style= position relative; display none; div class= headmenu_g onmouseover= showOBJ( FaMyList ); return false; onmouseout= hideOBJ( FaMyList ); return false; a style= text-decoration none; href= /cache/ids?famylist FaMyListに移動 /a div id= a_1 style= color #CDD; a style= text-decoration none; href= javascript void(0); onclick= getFIAdd2( $URL1 , fa , a_1 ); FaMyListに追加 /a /div div id= r_1 style= color #CDD; a style= text-decoration none; href= javascript void(0); onclick= getFIRemove2( $URL1 , fa , r_1 ); FaMyListから消去 /a /div script type= text/javascript src= /local/nlApiUtilExAdd.js /script /div /td td ↑ InfiMyList TopBar(2010/02/22)† [Replace]Name = InfiMyList TopBarURL = www\.nicovideo\.jp/watch/Multi = FALSEEachLine = FALSEMatch !--nlbar_end-- /span Replace $0 | /td td nowrap a href= javascript void(0); onclick= showOBJ( FaMyList ); return false; FaMyList▼ /a div id= FaMyList style= position relative; display none; div class= headmenu_g onmouseover= showOBJ( FaMyList ); return false; onmouseout= hideOBJ( FaMyList ); return false; a style= text-decoration none; href= http //www.nicovideo.jp/cache/ids?infimylist InfiMyListに移動 /a div id= a_1 style= color #CDD; a style= text-decoration none; href= javascript void(0); onclick= getFIAdd2( memoryId , infi , a_1 ); InfiMyListに追加 /a /div div id= r_1 style= color #CDD; a style= text-decoration none; href= javascript void(0); onclick= getFIRemove2( memoryId , infi , r_1 ); InfiMyListから消去 /a /div script type= text/javascript src= /local/nlApiUtilExAdd.js /script /div /td td ↑ watchページにコメント一覧を埋め込む(2010/01/31)† [Replace]Name = コメント一覧表示URL = www\.nicovideo\.jp/watch/Multi = FALSEEachLine = FALSEMatch div id= WATCHFOOTER (?s .+?)(?= /p ) Replace $0 span class= font12 style= color #CCC; float right; a href= javascript void(0); onclick= showOBJ( nlApiUtil_2 ); showOBJ( nlApiUtil_3 ); hideOBJ( nlApiUtil_1 ); return false; style= display block; id= nlApiUtil_1 コメントを表示 /a a href= javascript void(0); onclick= showOBJ( nlApiUtil_1 ); hideOBJ( nlApiUtil_2 ); hideOBJ( nlApiUtil_3 ); return false; style= display none; id= nlApiUtil_2 コメントを非表示 /a /span iframe src= /cache/ids?data= memoryId cdh style= display none; width 100%; height 253px; border-width 0px; id= nlApiUtil_3 /iframe ↑ マイリスト画面からnlApiUtilのマイリスト画面呼び出し(2010/10/27)† [Replace]Name = マイリスト画面からnlApiUtilのマイリスト画面呼び出しURL = www\.nicovideo\.jp/mylist/(\d+)Match a href= https //secure.nicovideo.jp/secure/logout ログアウト /a Replace a href= http //www.nicovideo.jp/cache/ids?mylist=$URL1 nlApiUtilExt /a ↑ フィルタ編集支援† ↑ 正規表現† Javaの正規表現が使えます。 参考リンク 正規表現一覧 ↑ フィルタのリロード(NicoCache_nlの再起動)† ※現在はファイルの更新日時を見て自動リロードするのでこの記述は必要無いはず バッチファイルを書いて簡略化できます taskkill.exeがない環境(WinXP Home等)はググれば簡易版がフリーで手に入るので それを使うといいでしょう Restart.bat を作成、以下の3パターンのいずれかのように記述1.NicoCache_GUI 併用 taskkill /f /im javaw.execall NicoCacheGUI.batexit2.GUI未使用taskkill /f /im javaw.execall NicoCache_nl.bat3.GUI未使用、起動後最小化taskkill /f /im javaw.exestart /min NicoCache_nl.bat
https://w.atwiki.jp/battler/pages/822.html
現:https